gpt4 book ai didi

java - 浏览器无法连接到 Jetty 服务器

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:51 25 4
gpt4 key购买 nike

我在 StackOverflow 上看到了另一个类似的问题,但他得到的答案非常漂亮、可笑。 “连接到本地主机。” ——就像,好吧。

无论如何,问题是我终于让我的嵌入式 Jetty 服务器编译并运行了,问题是因为我在 API 中使用它,所以我需要源代码,而不仅仅是依赖项。

我现在正在运行最基本的 hello-world 代码,服务器正在启动,但我的浏览器都无法建立连接。

代码如下:

try {
httpServer = new Server(8080);
httpServer.setHandler(new JettyPage());
httpServer.start();
} catch(Exception e) {
e.printStackTrace();
}

当然,这是 JettyPage.java:

public class JettyPage extends AbstractHandler {

@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("<h1>Hello world.</h1>");
}

}

控制台输出:

2014-11-07 07:01:05.155:INFO::main: Logging initialized @599ms
2014-11-07 07:01:05.190:INFO:oejs.Server:main: jetty-9.3.0.M1
2014-11-07 07:01:05.215:INFO:oejs.ServerConnector:main: Started ServerConnector@6e5e91e4{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2014-11-07 07:01:05.215:INFO:oejs.Server:main: Started @660ms

火狐浏览器:

The connection was reset

歌剧:

No data received

Chrome:

No data received

--- 是的,我正在连接到 localhost:8080我也尝试过:0.0.0.0:8080 和 127.0.0.1:8080

注意:如果我禁用在端口 80 上运行的 apache 服务器,并将 Jetty 绑定(bind)到端口 80,我仍然无法连接。

最佳答案

我遇到了完全相同的问题...非常简单的代码,无法让浏览器连接到 Jetty,即使它是从命令行和 IDE 编译并运行的。最后追溯到不匹配的 servlet 和 Jetty jar(至少我认为这导致了问题)。对我有用的是 javax-servlet-api-3.1.0.jar 和 jetty-all-9.2.8.v20150217.jar。一旦我开始使用它们,如果代码是在命令行或从 NetBeans IDE 编译的,我就可以连接。

对于像我这样的菜鸟来说,大多数命令行编译的在线示例都使用 Linux/Unix 路径分隔符(“:”)。我花了几分钟才弄清楚在 Windows 计算机上我需要一台不同的计算机(“;”):

javac -cp .;javax.servlet-api-3.1.0.jar;jetty-all-9.2.8.v20150217.jar HelloWorld.java

希望有帮助。

关于java - 浏览器无法连接到 Jetty 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com