web-dev-qa-db-fra.com

JBoss WildFly: démarre mais ne peut pas se connecter?

Je viens de configurer JBoss WildFly. Il fonctionne et est accessible depuis la même machine, tout fonctionne bien ...

Mon problème est qu'il n'est pas accessible depuis un autre système (je veux dire dans un réseau, l'URL du serveur (ordinateur hébergé) ne peut pas accéder depuis un autre système).

Comment puis-je résoudre ça?

33
user_vs

Par défaut, jboss/wildfly liant à localhost, si vous voulez changer cela, vous pouvez exécuter:

standalone.sh -b 0.0.0.0

ecoute sur toutes les adresses IP de la machine (si multi-hôtes)

Une autre alternative est de configurer dans standalone.xml la section interfaces.

Changement: 

<interfaces>
  <interface name="management">
   <inet-address value="127.0.0.1"/>
  </interface>
  <interface name="public">
   <inet-address value="127.0.0.1"/>
  </interface>
</interfaces>

à:

<interfaces>
  <interface name="management">
   <!-- Use the IPv4 wildcard address -->
   <any-ipv4-address/>
  </interface>
  <interface name="public">
   <!-- Use the IPv4 wildcard address -->
   <any-ipv4-address/>
  </interface>
</interfaces>

Ref: 

METTRE &AGRAVE; JOUR

De Wildfly 8, <any-ipv4-address/> était obsolète et supprimez-le dans Wildfly 9, puis, si vous utilisez 9.x ou une version plus récente, utilisez <any-address/>.

Obsolète En l'absence de -Djava.net.preferIPv4Stack=true, le fichier JVM ne peut pas être invité à lier un socket à toutes les adresses IPv4, mais uniquement aux adresses IPv4, de sorte que la sémantique souhaitée ne peut pas être obtenue. via ce paramètre seul. Depuis l'utilisation de any-addressType et le réglage -Djava.net.preferIPv4Stack=true fournit le même effet, this any-ipv4-addressType sera supprimé dans une prochaine version.

Par exemple:

<interface name="global">
   <!-- Use the wildcard address -->
   <any-address/>
</interface>
54
Federico Sierra

Le <any-ipv4-address/> est obsolète dans WF 9, utilisez:

 ...   
    <interface name="management">
       <any-address/>
    </interface>
 ...
19
bkomac

(J'ai résumé 2 réponses pour une solution de travail) J'utilise WildFly 10.0.0.Final - la dernière version au moment de l'écriture. Recherchez le fichier standalone.xml comme ceci:

Sous Windows

C:\tools\wildfly-10.0.0.Final\standalone\configuration\standalone.xml

Ou Linux, comme ceci:

/home/vyhn.net/wildfly-servlet-10.0.0.Final/standalone/configuration/standalone.xml

modifier devenir à:

<interfaces>
    <interface name="management">
        <!-- Allow all external IP -->
        <any-address/>
    </interface>
    <interface name="public">
        <!-- Allow all external IP -->
    <any-address/>
    </interface>
</interfaces>

Ensuite aller à:

http://your_domain:9990/error/index.html

(le port 9990 est le port HTTP par défaut. Si vous utilisez un pare-feu ou iptables, n'oubliez pas d'ouvrir le port 9990) Par exemple: 

http://vyhn.net:9990/error/index.html

Vous verrez que cela fonctionne avec succès.
Dernière référence (WildFly 10): https://docs.jboss.org/author/display/WFLY10/Interfaces+and+ports

4
foobarfuu

N'oubliez pas le pare-feu!

Si vous avez corrigé les adresses de liaison et que vous ne pouvez toujours pas vous connecter à JBoss, essayez de contourner le pare-feu du serveur. 

Pour arrêter le pare-feu sous LinuxRHEL, utilisez cette commande:

/etc/init.d/iptables stop

Une mise à jour (avril 2018):

Sur RHEL7 , où firewalld est utilisé (plutôt que iptables), vous pouvez utiliser:

systemctl stop firewalld

ou ouvrez les ports Jboss/Wildfly spécifiques (par exemple 8080/9990) avec ces deux commandes:

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
2
Naor Bar

Vous pouvez utiliser -b 0.0.0.0 pour autoriser l'accès indépendamment de l'adresse IP publique attribuée, par exemple. pour les ordinateurs obtenant une adresse IP dynamique (avec DHCP), je trouve cela pratique.

Utilisateurs d'Eclipse : Attention, dans la configuration du serveur, l'entrée "Nom de l'hôte:" sert à définir l'argument de programme "-b", en ignorant vos modifications!