我有两台笔记本电脑。两者都通过家用Wi-Fi路由器连接到互联网。
laptop1:使用NetBeans 8和GlassFish 4测试Java Enterprise Edition 7应用程序
laptop2:使用Eclipse Mars
测试Java Standard Edition 7应用程序以下是我在laptop1上所做的事情:
将一个简单的EJB组件和一个包含EJB远程接口的库打包到EAR中。
在GlassFish上成功部署。
将企业应用程序客户端和包含EJB远程接口的同一个库打包到模块中,并在GlassFish上单独部署。
两个应用程序(EAR和客户端模块)运行正常,客户端能够使用依赖注入(@EJB)调用ejb组件的方法。
以下是我在涉及laptop1和laptop2时遇到的问题:
我正在尝试在laptop2上创建一个独立的非EE客户端,以便调用驻留在laptop1上的远程EJB组件上的方法。我正在关注此文件 https://glassfish.java.net/docs/4.0/application-development-guide.pdf
该文件中的步骤如下。请参阅下面的问题。
STEP1
InitialContext ctx = new InitialContext();
BeanRemote bean =(BeanRemote)ctx.lookup(“com.acme.BeanRemote”);
对我来说它看起来不像JNDI。 java:global在哪里?
STEP2
将as-install / lib / gf-client.jar文件复制到客户端计算机并将其包含在客户端的类路径中。 我该怎么做以及在哪里可以找到客户端的类路径?
如果客户端计算机(duh!)上没有安装GlassFish Server,则还必须将as-install / modules目录复制到客户端计算机并维护其 相对于as-install / lib / gf-client.jar文件的目录结构。 类路径中的相对性?
STEP3
为JVM启动选项设置以下系统属性:
-Dorg.omg.CORBA.ORBInitialHost = $ {ORBhost}
-Dorg.omg.CORBA.ORBInitialPort = $ {ORBport}
这里ORBhost是GlassFish Server主机名,ORBport是ORB端口 number(默认服务器实例的默认值为3700,名为server)。
如何在客户端为JVM设置上述启动选项?
STEP4
确保客户端计算机上的etc / hosts文件映射GlassFish Server主机名和外部IP地址。 在每台笔记本电脑上的此文件中,我是否需要将完全合格的域标记为计算机名称并将其放在wi-fi网络分配的IP旁边?
答案 0 :(得分:0)
试试这个
String ejbConnectionName = String.format("ejb:%s/%s!%s", appModuleName, beanName, remoteBeanName);
BeanRemote bean = (BeanRemote) context.lookup(ejbConnectionName);