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

标签 java jetty localhost maven-3 lan

我正在尝试使用 192.168.0.6:8080(A 的 IP)从 LAN 上的另一台机器 (B) 访问网络应用程序(部署在我的机器 (A) 的 jetty8 中),但它不工作。虽然我通常可以使用 192.168.0.5(B 的 IP)从 A 访问机器 B 上 AppServ 上托管​​的应用程序。

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

我可以保证没有网络问题,但是jetty不知为何无法通过网络访问。是否有任何特定配置可以通过 LAN 访问?

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

最佳答案

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

确保检查正在监听的接口(interface)。

示例(来自日志)

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

也就是说服务器只监听 127.0.0.1 (localhost) 您可以在机器 A 上查看日志,或者只是进行快速测试。 打开网络浏览器并测试这两个 URL

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

如果它对两个 URL 都有响应,那么您可能已正确设置它并需要处理防火墙问题。 如果它适用于其中一个,但不适用于另一个,那么您只能在一个接口(interface)上收听。

要让 jetty 监听所有接口(interface),请使用特殊 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

此时,jetty 正在监听您机器上的所有接口(interface)。

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

      <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
        <Set name="host">0.0.0.0</Set>
      ...

关于java - 如何使 jetty 服务器从局域网访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11808075/

相关文章:

spring - 在 Tomcat 中发送带有附件文件的消息时缺少起始边界异常

java - 是否可以在eclipse运行时环境中定义jetty服务器?

java - Servlet/Tomcat 文件路径

java - Maven - 部署大型 war 文件

java - 线程 "AWT-EventQueue-0"中出现异常;传递给持久化的分离实体(在 Java 中)

java - 无法在 selenium webdriver 中选择 Iframe

java - Android - 恢复相机 Activity 被延迟

spring - 在 Spring 中的嵌入式 Jetty 上配置 Spring Security

java - tomcat本地主机配置

android - 连接到本地数据库时出现 SocketTimeoutException