如何使用Client JSP / Servlet在另一台计算机上部署Session Bean

时间:2010-09-01 03:20:54

标签: jsp servlets java-ee ejb-3.0 ejb

Hello Everybody我是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);

1 个答案:

答案 0 :(得分:6)

  1. 使用远程接口创建“客户端jar”,在客户端部署

  2. 提供应用服务器客户端jar(在您的方案中不需要)

  3. 在类路径上提供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
    
  4. 使用mappedName注释的@EJB属性指定目标远程EJB组件的全局JNDI名称(如果sun-ejb中没有设置jndi-name - jar.xml - 或者根本没有sun-ejb-jar.xml - 全局jndi-name默认为完全限定的Remote 3.0 Business接口类名称):

    @EJB(mappedName="com.acme.app.StatelessRemote")
    private StatelessRemote remote;
    
  5. 资源