代码之家  ›  专栏  ›  技术社区  ›  RMorrisey

无法从防火墙外部访问wicket quickstart

  •  0
  • RMorrisey  · 技术社区  · 14 年前

    我有一个项目,就服务器配置而言,它只是一个wicket快速启动原型。我已经添加了一些应用程序代码,但是还没有真正做任何事情来更改默认的jetty配置。

    我可以使用以下命令在本地运行和测试我的应用程序: http://localhost:8080 http://bekkar:8080 (我的电脑的网络名) 或: http://192.168.1.2:8080/ (我的电脑的本地IP)

    我想从路由器防火墙外访问wicket应用程序。(我最终会在我的黑莓手机上进行测试,但目前我正在使用谷歌浏览器(Google Chrome)尝试从外部访问它。)

    使用 http://www.whatismyip.com/

    我使用: 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
    

    哎呀!Google Chrome无法连接到8080

    如何从路由器防火墙外部访问wicket jetty快速启动?我不知道这是wicket/jetty问题(属于SO)还是防火墙问题(属于serverfault),所以我将首先在这里发布它。

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  1
  •   Ondra Žižka David Lilljegren    14 年前

    首先,尝试使用简单的apache或woof。请确保将其绑定到0.0.0.0(所有IP)。 A) 如果你找不到它,那就是路由器配置问题。

    案例A)我不知道路由器,但寻找端口转发。我无法让华硕WL500gP传递请求,所以我不是在这里建议的正确人选:)

    案例B)Jetty是否绑定到0.0.0.0?你能从本地网络上的其他机器上找到它吗?

        2
  •  1
  •   Tauren    14 年前

    我一直在我的系统上运行jetty/wicket应用程序,并远程访问它们。我不认为我在防波堤上做了什么特别的事情,尤其是没有wicket来完成这项工作。但如果有帮助,这里有一个示例Start.java文件(这是我的一个应用程序提供的——不确定它是否与quickstart中的相同,因为我现在没有可用的quickstart):

    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);
            }
        }
    }