2009-05-08 5 views
3

Ich habe ein kleines Problem damit, dass JBoss über Netzwerke hinweg funktioniert. Als kurzen Überblick haben wir ein Entwicklungsnetzwerk (das ich DEV nennen werde) und ein Kundennetzwerk (sagen wir .. CLIENT!). Diese sind über eine Firewall verbunden. Im Dev-Netzwerk ist der Server als 192.168.100.50 bekannt, im Client-Netzwerk ist er als 10.0.100.50 bekannt. DNS in beiden Netzwerken löst die betreffende IP durch DNS auf (sqlserver.dev.net).JBoss UnknownHostException in einem anderen Netzwerk

sqlserver bietet 2 Dienste an, einen über einen .NET Web Service, den anderen über JBoss. Wenn der Client im DEV-Netzwerk ausgeführt wird, funktionieren beide Dienste einwandfrei. Im CLIENT-Netzwerk funktioniert nur der .NET-Dienst.

JBoss Client löst eine Unknown beim Versuch, die ContextLookup in den folgenden Code ausführen:

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); 
} 

Ausnahme ist:

Wurzel Ausnahme ist java.rmi.UnknownHostException: Unknown host: SQLserver

ich kann bestätigen, dass das Problem ist, dass der Kunde zu ‚sqlserver‘ zu verbinden versucht withou t ein Domainname. Dies wurde getestet, indem 'sqlserver' der Host-Datei des Clients hinzugefügt wurde, und es funktioniert einwandfrei. Außerdem ist die Schreibweise von 'SQLserver' interessant, da der Host auf diese Weise seinen Hostnamen meldet und nicht, wie er in DNS gespeichert ist. Ich schätze, sobald der Client die erste Verbindung herstellt, teilt JBoss dem Client mit, dass er in Zukunft eine Verbindung mit 'SQLserver' herstellen soll, die der Client nicht beheben kann.

ich bereits versucht haben, die folgenden Systemeigenschaften auf den FQDN von Sqlserver Einstellung:

jgroups.bind_addr
bind.address
java.rmi.server.hostname

Does Hat jemand irgendwelche Ideen?

Antwort

6

Ok, stellt sich heraus, dass die Bindung an 0.0.0.0 beim Start tatsächlich vermasselt es ist die Selbstidentifikation. Bindung an sqlserver.dev.net (run.bat -b sqlserver.dev.net) repariert es.

0

Möglicherweise ist Ihr Netzwerk mit Proxy-Server, müssen Sie diese Proxy-Server-IP und Proxy-Port in Eigenschaften für diese überprüfen.

Verwandte Themen