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

标签 java servlets websocket jetty embedded-jetty

我在 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/

相关文章:

java - Servlet 的 MVC 架构的工作

java - Websocket Java 服务器。不发送消息也不接收

java - 在 Spring 的两个 bean 之间切换

java 。多线程环境中对象的序列化

java - tomcat 在取消部署时启动线程导致内存泄漏

java - HttpServletRequest getParameter 和 getReader

java - 如何根据 vaadin 中的操作重新加载或刷新选项卡的内容

java - 无法阅读简单的递归代码(JAVA)

html - 通过 websocket 将 html5 音频流式传输到服务器的方式

websocket - 在 Web 中跟踪 Solana 钱包变化