0

我在不同的机器(本地主机和 192.168.0.5)上有两台 Glassfish 3.1.2 服务器。我还有一个 appclient 客户端应用程序,它调用 EJB 并从 JMS 队列中获取消息。我必须使用 appclient 容器,因为如果我想使用事务处理会话到 JMS 队列,这是我唯一的选择。

如果我通过 appclient.bat 脚本在 localhost 上运行 appclient,我必须向脚本提供 targetserver 参数,如下所示: appclient.bat -targetserver localhost -jar appClient.jar -clientArg1 -clientArg2

这使得 appclient 连接到在 localhost 上运行的 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 服务器。

有什么建议么?

4

1 回答 1

0

找不到解决方案,所以我使用 targetserver 参数多次运行 appclient 批处理文件。

于 2012-09-12T14:05:21.967 回答