大家好我是EJB3的新手,我知道如何在一台计算机上的Glassfish服务器上部署Session Bean(无状态或有状态).我的问题是:我如何在计算机A上部署会话bean并在计算机B上部署Servlet或JSP? 它的意思
它的意思是
计算机A具有会话Bean源
和计算机B有Servlet或JSP源.
如果使用1台计算机,我可以使用@EJB依赖注入查找会话Bean
但在另一台计算机上如何为客户端代码执行此操作?
1台计算机的示例
@EJB private StatelessRemote remote ; double Dosomething= remote.Dosomething(); out.println(Dosomething);>使用远程接口创建“客户端jar”,在客户端上部署
>提供应用服务器客户端jar(在您的方案中不需要)
>使用以下内容在类路径上提供jndi.properties(假设GlassFish与GlassFish通信):
java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory java.naming.factory.url.pkgs=com.sun.enterprise.naming java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl org.omg.CORBA.ORBInitialHost=<hostname> org.omg.CORBA.ORBInitialPort=3700
>使用@EJB批注的mappedName属性指定目标远程EJB组件的全局JNDI名称(如果在sun-ejb-jar.xml中没有设置jndi-name – 或者没有sun-ejb-jar.xml在all – 全局jndi-name默认为完全限定的Remote 3.0 Business接口类名称):
@EJB(mappedName="com.acme.app.StatelessRemote") private StatelessRemote remote;
资源
> GlassFish EJB FAQ
> http://courses.coreservlets.com/Course-Materials/pdf/ejb3/EJB3-2-Session-Beans.pdf