webentwicklung-frage-antwort-db.com.de

wie mache ich einen Jetty-Server über LAN erreichbar?

Ich versuche, von einem anderen Computer (B) im LAN mit 192.168.0.6:8080 (A's IP) auf eine Web-App (bereitgestellt in jetty8 auf meinem Computer (A)) zuzugreifen, aber sie funktioniert nicht. Ich kann zwar von A aus auf auf AppServ gehostete Apps zugreifen, benutze aber normalerweise 192.168.0.5 (Bs IP).

Ich kann auf die App normalerweise über localhost zugreifen: 8080 auf Computer A.

Ich kann versichern, dass es kein Netzwerkproblem gibt, aber der Steg ist aus irgendeinem Grund nicht über das Netzwerk erreichbar. Gibt es eine bestimmte Konfiguration, die über das LAN zugänglich gemacht werden soll?

Meine App ist ein Maven-Projekt und ich führe es über Eclipse aus. Die Einstellungen befinden sich sowohl in der Datei web.xml als auch in der Datei pom.xml.

12
Sami

Die folgende Antwort ist für Jetty 8 und älter (Jetty 9+ Befehle und Klassennamen sind unterschiedlich)

Stellen Sie sicher, dass Sie überprüfen, welche Schnittstellen Sie abhören.

Beispiel (aus Protokollen)

2012-08-10 14:52:26.470:INFO:oejs.AbstractConnector:Started [email protected]:8080

Dies bedeutet, dass der Server nur 127.0.0.1 (localhost) überwacht. Sie können entweder die Protokolle anzeigen oder einen kurzen Test durchführen, während Sie sich auf Computer A befinden. Öffnen Sie einen Webbrowser und testen Sie diese beiden URLs

  • http://localhost:8080/
  • http://192.168.0.6:8080/

Wenn es auf beide URLs reagiert, ist es wahrscheinlich korrekt eingerichtet und Sie müssen sich mit Firewall-Problemen befassen. Wenn es für das eine, aber nicht für das andere funktioniert, hören Sie nur 1 Schnittstelle ab.

Verwenden Sie die spezielle IP-Adresse 0.0.0.0, damit alle Schnittstellen vom Steg abgehört werden

$ Java -Djetty.Host=0.0.0.0 -jar start.jar
2012-08-10 14:53:25.338:INFO:oejs.AbstractConnector:Started [email protected]:8080

An diesem Punkt hört Jetty alle Schnittstellen auf Ihrem Computer ab.

Hinweis: Sie können auch die Datei etc/jetty.xml bearbeiten und den Host dauerhaft einstellen.

      <New class="org.Eclipse.jetty.server.nio.SelectChannelConnector">
        <Set name="Host">0.0.0.0</Set>
      ...
17
Joakim Erdfelt

Nach einem Nachmittag mit dem Debuggen ungewöhnlicher Verhaltensweisen stellte ich fest, dass Jetty sich nur auf IPv6 übertrug, und beim Überspringen von IPv4 wurde der v4-Port einer anderen App zugewiesen.

Meine Lösung? Zu einem anderen Port springen ...

0
Matt Hilliard