如何从局域网访问jetty服务器?

Sam*_*ami 12 java lan jetty localhost maven-3

我试图使用192.168.0.6:8080(A的IP)从局域网上的另一台机器(B)访问一个Web应用程序(在我的机器(A)上的jetty8中部署),但它无法正常工作.虽然我可以通过使用192.168.0.5(B的IP)从A访问机器B上AppServ上托管的应用程序.

我可以在机器A上的localhost:8080上正常访问该应用程序.

我可以确保没有网络问题,但由于某种原因无法通过网络访问码头.是否有任何特定配置可通过LAN访问?

我的应用程序是Maven项目,我从eclipse运行它,设置在web.xml和pom.xml中.

Joa*_*elt 17

以下答案适用于Jetty 8及更早版本(Jetty 9+命令和类名不同)

确保检查您正在侦听的接口.

示例(来自日志)

2012-08-10 14:52:26.470:INFO:oejs.AbstractConnector:Started SelectChannelConnector@127.0.0.1:8080
Run Code Online (Sandbox Code Playgroud)

这表示服务器只监听127.0.0.1(localhost)你可以在机器A上查看日志,或者只是做一个快速测试.打开一个Web浏览器并测试这两个URL

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

如果它对两个URL都做出响应,那么您可能正确设置它并需要处理防火墙问题.如果它适用于一个,而不是另一个,那么你只是在1个界面上进行监听.

要让jetty侦听所有接口,请使用特殊的IP 0.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
Run Code Online (Sandbox Code Playgroud)

此时,jetty正在监听您计算机上的所有接口.

注意:您还可以编辑etc/jetty.xml并永久设置主机.

      <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
        <Set name="host">0.0.0.0</Set>
      ...
Run Code Online (Sandbox Code Playgroud)

  • 我只能访问`http:// localhost:8080`.我使用`mvn jetty:run -Djetty.host = 0.0.0.0`来运行jetty并运行并获得你提到的日志`SelectChannelConnector@0.0.0.0:8080`.但仍然无法访问`http://192.168.0.6:8080` ..还有什么可能仍然导致问题?我在本地尝试过. (2认同)