我正在尝试运行HornetQ jms / queue示例,远程托管JNDI和HornetQ服务器。
HornetQ服务器在10.0.10.102上运行。客户端在10.0.2.62上运行。服务器和客户端机器都是Linux机箱。
我在客户端配置了client-jndi.properties文件,如下所示:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://10.0.10.102:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
我在hornetq-beans.xml配置文件中配置了JNDI设置,如下所示:
<bean name="JNDIServer" class="org.jnp.server.Main">
<property name="namingInfo">
<inject bean="Naming"/>
</property>
<property name="port">1099</property>
<property name="bindAddress">10.0.10.102</property>
<property name="rmiPort">1098</property>
<property name="rmiBindAddress">10.0.10.102</property>
</bean>
我收到“拒绝连接”错误或客户端挂起查找JNDI服务,具体取决于我是否在服务器端Linux机器上运行“rmiregistry”(10.0.10.102)。
在没有运行“rmiregistry”的情况下,我在客户端遇到以下错误:
[java] javax.naming.CommunicationException: Could not obtain connection to any of these urls: 10.0.10.102:30199 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server /10.0.10.102:30199 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server /10.0.10.102:30199 [Root exception is java.net.ConnectException: Connection refused]]]
当我在服务器主机上运行“rmiregistry”时,JNDI查找挂起:
[java] Jan 12, 2012 2:23:47 PM org.hornetq.common.example.HornetQExample getContext
[java] INFO: using server0/client-jndi.properties for jndi
挂在这里......
知道我还需要做些什么才能为JNDI查找过程配置JNDI或我的Java环境?谢谢。
答案 0 :(得分:0)
该示例被编写为在同一终端上执行。示例是在同一个盒子上启动远程服务器和本地服务器。
当你远程运行时,你正在创建一些启动远程服务器的机制,所以你可能搞乱了一些配置。
我没有足够的信息来说明你是如何启动服务器的,所以我现在无法真正回答你的问题。如果您提供有关如何启动服务器的更多信息以及您正在进行哪些配置更改,我将尽力帮助您。
我建议你阅读HornetQ的Netty / remoting配置章节。
至于Netty,我认为你正在改变错误的文件,因为