我在不同的机器上有两个Glassfish 3.1.2服务器(localhost和192.168.0.5)。我还有一个appclient客户端应用程序,它调用EJB并从JMS队列获取消息。我必须使用appclient容器,因为如果我想将事务会话用于JMS队列,这是我唯一的选择。
如果我通过appclient.bat脚本在localhost上运行appclient,我必须向脚本提供targetserver参数,如下所示: appclient.bat -targetserver localhost -jar appClient.jar -clientArg1 -clientArg2
这使得appclient连接到在本地主机上运行的Glassfish。现在我想在我的客户端java应用程序中连接到192.168.0.5上的Glassfish,而appclient被连接到locahost。
我已经尝试将参数设置为InitialContext,但它们没有被采用。
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.impl.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", sourceURL);
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext ic = new InitialContext(props);
对EJB,JMS队列等的引用始终取自targetserver参数指定的Glassfish服务器。
有什么建议吗?
答案 0 :(得分:0)
无法找到解决方案,因此我正在运行带有targetserver参数的appclient批处理文件,这是我必须的次数。