posts - 14,  comments - 37,  trackbacks - 0
当你的EJB3是deploy to jboss的情况下,ejb client调用EJB3分两种情况:
1)      发布在jbossweb app作为client来调用EJB
EJB和调用EJB的WEB 应用都发布在Jboss 集成环境下。在Jboss下发布WEB 应用,需要把WEB 应用打包成war 文件。另外在此环境下调用EJB 不需要把EJB 的接口类放入/WEB-INF/classes/目录中,否则在调用Stateful Bean 就会发生类型冲突,引发下面的例外
java.lang.ClassCastException: $Proxy84
org.apache.jsp.StatefulBeanTest_jsp._jspService(org.apache.jsp.StatefulBeanTest_jsp:55)
 
如果EJB和调用EJB的WEB 应用都发布在Jboss 集成环境下,那么EJB的Local或Remote接口都可以被调用
 
发布在Jboss 下的客户端不需要明确设置JNDI 访问的上下文环境,可以直接通过
InitialContext ctx = new InitialContext()
获得上下文环境,容器会自动赋给InitialContext 正确的环境,例如:
InitialContext ctx = new InitialContext();//客户端和jboss运行在同一个jvm,不需要传入props
HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
 
如果硬给InitialContext 设置了访问属性,反而会带来不可移植的问题,因为你的应用有可能部署在weblogic 等应用服务器。(本教程考虑到部分同学可能需要在独立的J2se 中调用EJB,为了教学的方便,把访问属性都设上了,这样不管在jbossj2se 或独立tomcat,都能获得正确的InitialContext
 
2)      在单独的TomcatJ2SE(如junit test)中调用EJB
在正式的生产环境下,大部分调用EJB 的客户端可能是单独的Tomcat 或Resin。下面介绍如何在单独的Tomcat服务器中调用EJB。在单独的Tomcat 服务器中调用EJB 需要有以下步骤
A)                    把调用EJB 所依赖的Jar 包拷贝到tomcat 下的/shared/lib 目录或WEB 应用的WEB-INF/lib,所依赖的Jarjboss 安装目录的client目录下。你可以在eclipse里设置一个自定义的library “ejb3 library”,把这些jars都添加到该library里,然后在你的EJB project里把“ejb3 library” add to classpath
B)                     把EJB 接口拷贝到应用的/WEB-INF/classes/目录下
C)                     客户端访问EJB 时必须明确设置InitialContext 环境属性,代码如下:
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
InitialContext ctx = new InitialContext(props);//客户端和jboss运行在同一个jvm,不需要传入props
HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
 
Tip: 除了上面通过硬编码设置环境属性的方式外,还可以在应用的classpath 下放置一个jndi.properties 文件
 
注意:在单独的tomcat和J2SE里不能调用EJB Local 接口,因为他与JBOSS 不在同一个VM 中。J2se中调用EJB3 同样需要把上述jar EJB 接口放置在应用的类路径下。
posted on 2007-07-20 14:51 冰封的爱 阅读(341) 评论(0)  编辑  收藏 所属分类: J2EE

只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(3)

随笔档案

文章分类

文章档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜