Domanda

Sto riscontrando un po 'di problemi nel far funzionare JBoss attraverso le reti. Come breve panoramica, abbiamo una rete di sviluppo (che chiamerò DEV) e una rete client (diciamo CLIENT!). Questi sono collegati tramite un firewall. Nella rete Dev, il server è noto come 192.168.100.50, sulla rete client è noto come 10.0.100.50. Il DNS in entrambe le reti risolve l'IP pertinente tramite DNS (sqlserver.dev.net).

sqlserver fornisce 2 servizi, uno tramite un servizio Web .NET, l'altro da JBoss. Quando si esegue il client sulla rete DEV, entrambi i servizi funzionano correttamente. Quando si è sulla rete CLIENT, funziona solo il servizio .NET.

Il client JBoss genera una UnknownHostException quando tenta di eseguire ContextLookup nel seguente codice:

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

L'eccezione è:

  

L'eccezione di root è java.rmi.UnknownHostException: host sconosciuto: SQLserver

Posso confermare che il problema è che il client sta tentando di connettersi a 'sqlserver' senza un nome di dominio. Questo è stato testato aggiungendo 'sqlserver' al file host del client e funziona benissimo. Inoltre, l'ortografia di "SQLserver" è interessante, in quanto questo è il modo in cui l'host Windows riporta il suo nome host, non come è archiviato nel DNS. La mia ipotesi migliore è che una volta che il client ha effettuato la connessione iniziale, JBoss dice al client di connettersi a "SQLserver" in futuro, che il client non è in grado di risolvere.

Ho già provato a impostare le seguenti proprietà di sistema sul nome di dominio completo di sqlserver:

  

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

Qualcuno ha qualche idea?

È stato utile?

Soluzione

Ok, risulta che l'associazione a 0.0.0.0 all'avvio in realtà rovina la sua autoidentificazione. Il collegamento a sqlserver.dev.net (run.bat -b sqlserver.dev.net) lo ha risolto.

Altri suggerimenti

Potrebbe essere la tua rete con server proxy, devi fornire l'IP del server proxy e la porta del proxy nelle proprietà per verificarli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top