Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 浏览器可以';无法连接到Jetty服务器_Java_Servlets_Websocket_Jetty_Embedded Jetty - Fatal编程技术网

Java 浏览器可以';无法连接到Jetty服务器

Java 浏览器可以';无法连接到Jetty服务器,java,servlets,websocket,jetty,embedded-jetty,Java,Servlets,Websocket,Jetty,Embedded Jetty,我在StackOverflow上看到了另一个类似这样的问题,但他得到的答案很漂亮,很神奇。“连接到本地主机。”--好的 无论如何,问题是我终于让我的嵌入式Jetty服务器编译并运行了,问题是因为我在API中使用它,我需要源代码,而不仅仅是依赖项 我现在正在运行最基本的hello world代码,服务器正在启动,但我的浏览器都无法形成连接 代码如下: try { httpServer = new Server(8080); httpServer.setHandler(new Jet

我在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>");
    }

}
火狐:

The connection was reset
歌剧:

No data received
铬:

No data received
---是的,我正在连接到本地主机:8080 我也试过:0.0.0.0:8080和127.0.0.1:8080


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

如果您完全按照HelloWorld示例进行操作,您将得到响应

您的运行时环境仍然存在一些问题

这是您正在运行的windows吗?如果是这样,请尝试将端口设置为8080以外的其他端口(尝试38080),因为该端口上可能已经存在某些内容,Windows在这种情况下不会抛出错误或警告。(在其他操作系统上,这将导致绑定异常)

您是否有任何表示错误或警告的日志输出

控制台应该有大量日志输出,即使在启动服务器或提供某些内容时出错

如果您想启用非常详细的日志记录,可以将
-Dorg.eclipse.jetty.LEVEL=DEBUG
添加到java执行中

Windows版本

>java-Dorg.eclipse.jetty.LEVEL=DEBUG-cp。;servlet-api.jar;jetty-all.jar HelloWorld
Linux/OSX/Unix版本

$java-Dorg.eclipse.jetty.LEVEL=DEBUG-cp.:servlet api.jar:jetty-all.jar HelloWorld

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

对于像我这样的原始noob,大多数命令行编译的在线示例都使用Linux/Unix路径分隔符(“:”)。我花了几分钟才在Windows计算机上找到我需要的另一台(“;”):

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


希望能有所帮助。

也许您正在使用某种VPN,比如Cisco AnyConnect?
No data received