Java JBoss UnknownHostException在不同网络上时

Java JBoss UnknownHostException在不同网络上时,java,jboss,dns,rmi,Java,Jboss,Dns,Rmi,我在让JBoss跨网络工作方面遇到了一些问题。作为一个快速概述,我们有一个开发网络(我称之为DEV)和一个客户端网络(比如..client!)。它们通过防火墙连接。在Dev网络中,服务器名为192.168.100.50,在客户端网络中,服务器名为10.0.100.50。两个网络中的DNS都通过DNS解析相关IP(sqlserver.dev.net) sqlserver提供2个服务,一个通过.NETWeb服务,另一个通过JBoss。在DEV网络上运行客户机时,这两个服务都可以正常工作。在客户端网络

我在让JBoss跨网络工作方面遇到了一些问题。作为一个快速概述,我们有一个开发网络(我称之为DEV)和一个客户端网络(比如..client!)。它们通过防火墙连接。在Dev网络中,服务器名为192.168.100.50,在客户端网络中,服务器名为10.0.100.50。两个网络中的DNS都通过DNS解析相关IP(sqlserver.dev.net)

sqlserver提供2个服务,一个通过.NETWeb服务,另一个通过JBoss。在DEV网络上运行客户机时,这两个服务都可以正常工作。在客户端网络上时,只有.NET服务工作

JBoss客户端在以下代码中尝试执行ContextLookup时抛出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);
}
例外情况是:

根异常为java.rmi.UnknownHostException:未知主机:SQLserver

我可以确认问题在于客户端试图连接到没有域名的“sqlserver”。通过将“sqlserver”添加到客户机的主机文件,这一点已经过测试,并且工作正常。此外,“SQLserver”的拼写很有趣,因为这是Windows主机报告其主机名的方式,而不是DNS中的存储方式。我最好的猜测是,一旦客户端建立了初始连接,JBoss会告诉客户端将来连接到“SQLserver”,而客户端无法解决这个问题

我已尝试将以下系统属性设置为sqlserver的FQDN:

jgroups.bind_addr
绑定地址
java.rmi.server.hostname


有人有什么想法吗?

好吧,事实证明,在启动时绑定到0.0.0.0实际上会弄乱它的自我识别。绑定到sqlserver.dev.net(run.bat-b sqlserver.dev.net)修复了它。

可能是您的网络有代理服务器,您需要在属性检查中提供代理服务器ip和代理端口