-1

サーバー構成の目的で、ウィケットのクイックスタートの原型にすぎないプロジェクトがあります。アプリケーション コードをいくつか追加しましたが、デフォルトの jetty 構成を変更するために実際には何もしていません。

http://localhost:8080 または http://bekkar:8080 (PC のネットワーク名) または http://192.168.1.2:8080/ (PC のローカル IP)を使用して、アプリケーションをローカルで実行およびテストできます 。

ルーターのファイアウォールの外側から wicket アプリにアクセスしたい。(最終的には Blackberry でテストしますが、今のところ Google Chrome を使用して外部からアクセスしようとしています。)

http://www.whatismyip.com/を使用して、ルーターの IP を見つけました。

http://###.###.###.###:8080を使用する と、認証が必要という画面が表示され、ユーザー名とパスワードを要求されます。ウィケット アプリで認証を設定していません。

NetGear ルーター WGR614v7 を使用しています。ルーター管理を使用して、ポート フォワーディングの下に、次のカスタム サービスを追加します。

Service Name=wicket
Starting Port=8080
Ending Port=8080
Server IP Address=192.168.1.2 //my computer's local IP

ポート転送サービス定義を追加した後、Chrome から別のメッセージが表示されます。Google Chrome は ###.###.###.###:8080 に接続できませんでした

ルーターのファイアウォールの外側から wicket jetty クイックスタートにアクセスできるようにするにはどうすればよいですか? これが wicket/jetty の問題 (SO に属する) なのか、ファイアウォールの問題 (serverfault に属する) なのかわからないので、最初にここに投稿します。

ありがとう!

4

2 に答える 2

1

まず、単純な apache または woof で試してください。必ず 0.0.0.0 (すべての IP) にバインドしてください。A) 到達できない場合は、ルーターの設定の問題です。B) それが機能する場合、jetty/wicket 構成ではないことがわかります。

ケース A) そのルーターはわかりませんが、ポート転送を探します。ASUS WL500gP のパス リクエストを受け取ることができなかったので、ここでアドバイスするのは適切ではありません :)

ケース B) Jetty は 0.0.0.0 にバインドしますか? ローカル ネットワーク上の他のマシンからアクセスできますか?

あまり参考にならない回答ですが、少しでもお役に立てれば幸いです。

于 2010-06-20T23:37:47.187 に答える
1

システムで常に jetty/wicket アプリを実行し、リモートでアクセスしています。私が Jetty で行った特別なことはないと思います。特に、これを機能させるためにウィケットを使用したことはありません。しかし、それが役立つ場合は、ここに Start.java ファイルの例を示します (これは私のアプリの 1 つからのものです。現在利用可能なクイックスタートがないため、クイックスタートのものと同じかどうかはわかりません)。

public class Start {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        SocketConnector connector = new SocketConnector();

        // Set some timeout options to make debugging easier.
        connector.setMaxIdleTime(1000 * 60 * 60);
        connector.setSoLingerTime(-1);
        connector.setPort(8080);
        server.setConnectors(new Connector[] { connector });

        WebAppContext bb = new WebAppContext();
        bb.setServer(server);
        bb.setContextPath("/");
        bb.setWar("src/main/webapp");

        // START JMX SERVER
        // MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        // MBeanContainer mBeanContainer = new MBeanContainer(mBeanServer);
        // server.getContainer().addEventListener(mBeanContainer);
        // mBeanContainer.start();

        server.addHandler(bb);

        try {
            System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
            server.start();
            System.in.read();
            System.out.println(">>> STOPPING EMBEDDED JETTY SERVER"); 
            // while (System.in.available() == 0) {
            //   Thread.sleep(5000);
            // }
            server.stop();
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(100);
        }
    }
}

DLink ルーターを使用しているため、設定方法がわかりません。ただし、ルーターでリモート Web 管理がオンになっているかどうか、およびポート 8080 にあるかどうかも確認する必要があります。オンになっている場合は、ポート フォワーディングに干渉している可能性があるため、オフにしてください。

于 2010-06-21T06:16:36.193 に答える