2012-04-12 15 views
37

Sto usando JBoss AS 7 e sto provando a connettermi alla mia applicazione usando l'IP (da un computer nella intranet). Non funziona. Se provo dal computer che ha il server posso vedere il sistema in esecuzione se passo attraverso localhost (http: // localhost: 8080/MySystem ....) ma non Se provo con l'IP (http: //: 8080/MySystem ....).JBoss AS 7 non accetta connessioni remote

Qualsiasi aiuto?

+1

Potrebbe essere un firewall problema? –

+0

Inserisci il file di configurazione e indica se stai utilizzando un'istanza autonoma o il dominio gestito. – ddri

+0

È un'istanza autonoma. Il file di configurazione è predefinito (ho appena aggiunto la stringa di connessione DB). – Tony

risposta

78

La risposta è di modificare standalone.xml e inserire il tag any-indirizzo invece di inet indirizzo legato a 127.0.0.1

<interfaces> 
    <interface name="management"> 
     <inet-address value="127.0.0.1"/> 
    </interface> 
    <interface name="public"> 
     <any-ipv4-address/> 
    </interface> 
</interfaces> 
+9

'' ha funzionato, '' non ha funzionato nel mio caso. –

+1

lo stesso per me; funziona. Ho la versione 7.1.1. tuttavia, questo funziona anche:

7

Si è configurato l'indirizzo IP nel file di configurazione?

partire JBoss senza configurare l'indirizzo IP verrà impostato l'indirizzo di default per JBoss per localhost che misura per lo sviluppo o forse per un server di produzione, dove apache viene utilizzato come proxy a JBoss e risiede nella stessa macchina.

Per impostare l'indirizzo IP per JBoss:

To a specific IP address 
run.sh -b 10.62.31.31 
To localhost or the IP address assigned to the server 
run.sh -b 0.0.0.0 

si può anche cambiare nel file di configurazione sotto la <interfaces> section.

+2

se sei in Windows, lo script della shell è 'run.bat' –

+4

E in JBoss AS7 non viene eseguito affatto :-) È standalone.sh per il server standalone e domain.sh per il server di dominio. Su Windows basta cambiare la sh per batterla. –

+0

Non esiste uno script "run.sh" in JBoss AS 7 e, sebbene l'opzione -b sia stata implementata in questa versione, non dovrebbe essere invocata in quanto vi sono problemi di ereditarietà in cui un IP è dichiarato in modo specifico nel file di configurazione. Lo switch funzionerà solo dove rimane il token java "$ {jboss.bind.address.management:127.0.0.1}". Come sempre, l'uso della console di gestione o della CLI di gestione offre le migliori opzioni amministrative. – ddri

20

ho cambiato il 127.0.0.1 (localhost) a 0.0.0.0 in standalone.xml. Funziona. Basta essere consapevoli della sicurezza.

<interfaces> 
    <interface name="management"> 
     <inet-address value="${jboss.bind.address.management:0.0.0.0}"/> 
    </interface> 
    <interface name="public"> 
     <inet-address value="${jboss.bind.address:0.0.0.0}"/> 
    </interface> 
    <!-- TODO - only show this if the jacorb subsystem is added --> 
    <interface name="unsecure"> 
     <!-- 
      ~ Used for IIOP sockets in the standard configuration. 
      ~     To secure JacORB you need to setup SSL 
      --> 
     <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/> 
    </interface> 
</interfaces> 
+0

Funziona, ma puoi chiarire cosa intendi con "Basta essere consapevoli della sicurezza"? – sho222

+1

Re. sicurezza, se si desidera che il server sia accessibile esternamente, non si tratta di un problema, ma è possibile che si desideri limitare l'accesso dell'interfaccia di gestione in remoto. –

+1

Permettere il binding a 0.0.0.0 significa che il server ascolterà le connessioni a qualsiasi ip, quindi è qualcosa che dovresti essere a conoscenza. – droope

0

Non dimenticare il firewall!

Se sono stati corretti gli indirizzi di binding e ancora non è possibile connettersi a JBoss, provare a aggirare il firewall del server.

Per fermare il firewall su Linux RHEL usare questo comando:

/etc/init.d/iptables stop 

un aggiornamento: Su RHEL7, in cui non è installato iptables - si possono utilizzare:

systemctl stop firewalld 
Problemi correlati