Rob*_*son 3 java dns jboss rmi
让JBoss在网络上工作时遇到了一些问题.作为一个快速概述,我们有一个开发网络(我称之为DEV)和一个客户端网络(比如说.. CLIENT!).它们通过防火墙连接.在Dev网络中,服务器称为192.168.100.50,在客户端网络上称为10.0.100.50.两个网络中的DNS通过DNS(sqlserver.dev.net)解析相关的IP.
sqlserver提供2个服务,一个通过.NET Web服务,另一个通过JBoss.在DEV网络上运行客户端时,两种服务都可以正常工作.在CLIENT网络上时,只有.NET服务可用.
尝试在以下代码中执行ContextLookup时,JBoss客户端抛出UnknownHostException:
Properties p = new Properties();
p.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
p.put("java.naming.factory.url.pkgs", "=org.jboss.naming:org.jboss.jnp.interfaces");
p.put("java.naming.provider.url", "sqlserver.dev.net:1199");
try {
Context c = new InitialContext(p);
cm = (ServiceRemote)c.lookup(Service.RemoteJNDIName);
} catch (NamingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)
例外情况是:
根异常是java.rmi.UnknownHostException:未知主机:SQLserver
我可以确认问题是客户端正在尝试连接到没有域名的'sqlserver'.这已经通过将'sqlserver'添加到客户端的主机文件中进行了测试,并且工作正常.另外,'SQLserver'的拼写很有趣,因为这是Windows主机报告主机名的方式,而不是它如何存储在DNS中.我最好的猜测是,一旦客户端进行初始连接,JBoss会告诉客户端将来连接到'SQLserver',客户端无法解析.
我已经尝试将以下系统属性设置为sqlserver的FQDN:
jgroups.bind_addr
bind.address
java.rmi.server.hostname
有没有人有任何想法?
好的,事实证明在启动时绑定到0.0.0.0实际上会弄乱它的自我识别.绑定到sqlserver.dev.net(run.bat -b sqlserver.dev.net)修复它.
| 归档时间: |
|
| 查看次数: |
6156 次 |
| 最近记录: |