14

192.168.0.6:8080(AのIP)を使用してLAN上の別のマシン(B)からWebアプリ(私のマシン(A)のjetty8にデプロイされている)にアクセスしようとしていますが、機能しません。通常は192.168.0.5(BのIP)を使用して、AからマシンBのAppServでホストされているアプリにアクセスできます。

マシンAのlocalhost:8080で通常どおりアプリにアクセスできます。

ネットワークに問題はありませんが、何らかの理由で突堤にネットワーク経由でアクセスできません。LAN経由でアクセスできるようにするための特定の構成はありますか?

私のアプリはMavenプロジェクトであり、Eclipseから実行し、設定はweb.xmlとpom.xmlの両方にあります。

4

3 に答える 3

18

次の回答は、Jetty 8以前のものです(Jetty 9以降のコマンドとクラス名は異なります)

リッスンしているインターフェイスを確認してください。

例(ログから)

2012-08-10 14:52:26.470:INFO:oejs.AbstractConnector:Started SelectChannelConnector@127.0.0.1:8080

つまり、サーバーは127.0.0.1(localhost)でのみリッスンしているということです。マシンAでログを確認するか、簡単なテストを実行できます。Webブラウザーを開き、これらのURLの両方をテストします。

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

両方のURLで応答する場合は、正しく設定されている可能性があり、ファイアウォールの問題に対処する必要があります。一方では機能し、もう一方では機能しない場合は、1つのインターフェイスでのみリッスンしています。

jettyがすべてのインターフェースでリッスンするようにするには、特別なIP0.0.0.0を使用します

$ java -Djetty.host=0.0.0.0 -jar start.jar
2012-08-10 14:53:25.338:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080

この時点で、jettyはマシンのすべてのインターフェイスをリッスンしています。

注:etc / jetty.xmlを編集して、ホストを永続的に設定することもできます。

      <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
        <Set name="host">0.0.0.0</Set>
      ...
于 2012-08-10T21:58:43.890 に答える
1

2020-07-20

@JoakimErdfelt answerへの追加として、 Jetty 9.4.12.v20180830 (およびそれ以降) では、プログラムでホストを次のように構成できます。

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;

    Server server = new Server();       

    ServerConnector httpConnector = new ServerConnector(server);
        httpConnector.setHost("0.0.0.0"); // <--------- !
        httpConnector.setPort(12345);
        httpConnector.setIdleTimeout(5000);
        server.addConnector(httpConnector);
于 2020-07-20T11:05:18.033 に答える
0

それで私はこれにぶつかり、奇妙な動作をデバッグする午後の後、Jetty が IPv6 にのみブロードキャストし、IPv4 をスキップし、v4 ポートが別のアプリに割り当てられていることを発見しました。

私の解決策は?別のポートにジャンプ...

于 2014-09-09T20:00:00.063 に答える