我有一个项目,出于服务器配置的目的,它只是一个wicket快速入门原型。我添加了一些应用程序代码,但还没有真正做任何事情来改变默认的jetty配置。
我可以使用以下方式在本地运行和测试我的应用程序 http://localhost:8080 要么: http://bekkar:8080(我个人电脑的网络名称) 要么: http://192.168.1.2:8080/(我个人电脑的本地知识产权)
我想从路由器防火墙外部访问我的wicket应用程序。 (我最终将在我的Blackberry上测试它,但是现在我正在使用谷歌浏览器尝试从外部访问它。)
使用http://www.whatismyip.com/我找到了路由器的IP。
我用: http://###.###.###.###:8080 我得到一个显示需要身份验证的屏幕,要求输入用户名和密码。我的wicket应用程序中没有设置任何类型的身份验证。
我有一个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问题(属于SO)还是防火墙问题(属于serverfault),所以我先在这里发布。
谢谢!
答案 0 :(得分:1)
首先,尝试使用简单的apache或woof。一定要将其绑定到0.0.0.0(所有IP)。 A)如果你无法达到它,那就是路由器配置问题。 B)如果有效,你知道它不是jetty / wicket配置。
案例A)我不知道路由器,但寻找端口转发。我无法让华硕WL500gP通过请求,所以我不是正确的建议:)案例B)Jetty是否绑定到0.0.0.0?你能从本地网络上的其他机器上拿到它吗?
没有多少有用的答案,但我希望它有所帮助。
答案 1 :(得分:1)
我一直在我的系统上运行jetty / wicket应用程序并远程访问它们。我不认为我对Jetty有什么特别之处,尤其不是wicket来完成这项工作。但如果它有帮助,这里有一个示例Start.java文件(这来自我的一个应用程序 - 不确定它是否与quickstart中的相同,因为我现在没有快速入门):< / p>
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上。如果是,请将其关闭,因为它可能会干扰您的端口转发。