Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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_Jetty - Fatal编程技术网

Java Jetty服务器未启动:无法建立环回连接

Java Jetty服务器未启动:无法建立环回连接,java,jetty,Java,Jetty,因此,我试图设置一个嵌入式jetty 9服务器。然而,当我尝试: mvn干净编译执行器:java 执行暂停在: 信息:oejs.Server:com.main.SimpleServer.main():jetty-9.0.0.RC2 过了一段时间,我得到了如下异常: 警告:oejuc.AbstractLifeCycle:com.main.SimpleServer.main():失败的org.eclipse.jetty.io.SelectorManager$ManagedSelector@45a01

因此,我试图设置一个嵌入式jetty 9服务器。然而,当我尝试:

mvn干净编译执行器:java

执行暂停在:

信息:oejs.Server:com.main.SimpleServer.main():jetty-9.0.0.RC2

过了一段时间,我得到了如下异常:

警告:oejuc.AbstractLifeCycle:com.main.SimpleServer.main():失败的org.eclipse.jetty.io.SelectorManager$ManagedSelector@45a0110ekeys=-1 selected=-1:java.io.IOException:无法建立环回连接

java.io.IOException:无法建立环回连接 java.net.ConnectException:连接被拒绝:连接

我的代码如下所示:

public class HelloHandler extends AbstractHandler {
    final String _greeting;

    final String _body;

    public HelloHandler() {
        _greeting = "Hello World";
        _body = null;
    }

    public HelloHandler(String greeting) {
        _greeting = greeting;
        _body = null;
    }

    public HelloHandler(String greeting, String body) {
        _greeting = greeting;
        _body = body;
    }

    public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        response.setContentType("text/html;charset=utf-8");
        response.setStatus(HttpServletResponse.SC_OK);
        baseRequest.setHandled(true);
        response.getWriter().println("<h1>" + _greeting + "</h1>");
        if (_body != null) response.getWriter().println(_body);
    }
}
我的pom.xml看起来像:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>TestJetty</groupId>
    <artifactId>TestJetty</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    
    <properties>
    <jettyVersion>9.0.0.RC2</jettyVersion>
  </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>${jettyVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-websocket</artifactId>
            <version>7.4.4.v20110707</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
            <version>${jettyVersion}</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>3.0-alpha-1</version>
        </dependency>

    </dependencies>
    
    <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jettyVersion}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution><goals><goal>java</goal></goals></execution>
        </executions>
        <configuration>
          <mainClass>com.main.SimpleServer</mainClass>
        </configuration>
      </plugin>
      
    </plugins>
  </build>
</project>

4.0.0
试验码头
试验码头
0.0.1-快照
9.0.0.RC2
org.eclipse.jetty
jetty服务器
${jettyVersion}
org.eclipse.jetty
码头腹板箱
7.4.4.v20110707
org.eclipse.jetty
码头
${jettyVersion}
javax.servlet
servlet api
3.0-α-1
org.eclipse.jetty
jetty maven插件
${jettyVersion}
org.codehaus.mojo
execmaven插件
1.1
JAVA
com.main.SimpleServer

这意味着您的本地主机环回配置错误(例如报告为非环回IP地址),或者被某些东西阻止使用(最常见的原因是microsoft windows策略决策和防火墙规则)

不太常见的是没有可用IPv4(仅IPv6)的计算机

尝试编译并运行此

package stackoverflow.jetty;
导入java.net.InetAddress;
导入java.net.InetSocketAddress;
导入java.net.NetworkInterface;
导入java.net.SocketException;
导入java.util.Collections;
导入java.util.Enumeration;
导入java.util.List;
公共类AddrList
{
公共静态void main(字符串[]args)
{
尝试
{
InetAddress loopback=InetAddress.getLoopbackAddress();
转储(“环回”,环回);
}
捕获(可丢弃的t)
{
System.out.println(“无法获取LoopbackAddress()”;
t、 printStackTrace();
}
尝试
{
InetAddress localhost=InetAddress.getLocalHost();
转储(“LocalHost”,LocalHost);
}
捕获(可丢弃的t)
{
System.out.println(“无法获取localhost()”;
t、 printStackTrace();
}
尝试
{
InetAddress alladdr=InetAddress.getByName(“0.0.0.0”);
转储(“0.0.0.0”,alladdr);
}
捕获(可丢弃的t)
{
System.out.println(“无法获取localhost()”;
t、 printStackTrace();
}
尝试
{
枚举网络=NetworkInterface.getNetworkInterfaces();
用于(网络接口iface:Collections.list(网络))
{
尝试
{
System.out.println(“DisplayName=“+iface.getDisplayName());
System.out.println(“Name=“+iface.getName());
List addrs=Collections.List(iface.getInetAddresses());
int i=0;
用于(InetAddress地址:地址)
{
dump(Integer.toString(i++),addr);
}
}
捕获(可丢弃的t)
{
System.out.println(“无法为NetworkInterface创建InetAddress:+iface.getDisplayName());
t、 printStackTrace();
}
}
}
捕获(SocketException e)
{
系统输出打印(“无法获取所有网络接口”);
e、 printStackTrace();
}
}
公共静态无效转储(字符串类型,InetAddress addr)
{
字符串头=String.format(“[%s]InetAddress”,类型);
尝试
{
System.out.println(标题+“=”+addr);
System.out.println(header+”.isAnyLocalAddress=“+addr.isAnyLocalAddress());
System.out.println(header+”.isLinkLocalAddress=“+addr.isLinkLocalAddress());
System.out.println(header+”.isLoopbackAddress=“+addr.isLoopbackAddress());
}
捕获(可丢弃的t)
{
System.out.printf(“[%s]未能列出InetAddress详细信息%n”,类型);
t、 printStackTrace();
}
尝试
{
header=String.format(“[%s]InetSocketAddress”,类型);
InetSocketAddress isockaddr=新的InetSocketAddress(addr,8080);
System.out.println(标题+“=”+isockaddr);
System.out.println(header+”.isUnresolved=“+isockaddr.isUnresolved());
}
捕获(可丢弃的e)
{
e、 printStackTrace();
}
}
}
这应该列出您机器上的所有网络接口变体。 如果您有一个错误或异常,您需要首先解决这个问题,然后才能在该机器上启动Jetty

在普通机器上,您会看到以下输出:

[Loopback] InetAddress = localhost/127.0.0.1
[Loopback] InetAddress.isAnyLocalAddress = false
[Loopback] InetAddress.isLinkLocalAddress = false
[Loopback] InetAddress.isLoopbackAddress = true
[Loopback] InetSocketAddress = localhost/127.0.0.1:8080
[Loopback] InetSocketAddress.isUnresolved = false
[LocalHost] InetAddress = lapetus/127.0.1.1
[LocalHost] InetAddress.isAnyLocalAddress = false
[LocalHost] InetAddress.isLinkLocalAddress = false
[LocalHost] InetAddress.isLoopbackAddress = true
[LocalHost] InetSocketAddress = lapetus/127.0.1.1:8080
[LocalHost] InetSocketAddress.isUnresolved = false
[0.0.0.0] InetAddress = /0.0.0.0
[0.0.0.0] InetAddress.isAnyLocalAddress = true
[0.0.0.0] InetAddress.isLinkLocalAddress = false
[0.0.0.0] InetAddress.isLoopbackAddress = false
[0.0.0.0] InetSocketAddress = /0.0.0.0:8080
[0.0.0.0] InetSocketAddress.isUnresolved = false
(snip ... long list of other interfaces)
这向我展示了所有3个选项:环回、localhost和0.0.0.0(任何接口) 尽可能地为Jetty做听众


最后,升级到。

Jetty服务器已配置并为我工作。在晴朗的一天,它开始出现“无法建立环回连接”错误。我重申了我的机器,它又开始工作了。所以我认为这个错误完全与windows操作系统有关。

这可能是防火墙问题吗?看:不,看起来真的不像。另外,使用jetty 9的jetty WebSocket,不要带
[Loopback] InetAddress = localhost/127.0.0.1
[Loopback] InetAddress.isAnyLocalAddress = false
[Loopback] InetAddress.isLinkLocalAddress = false
[Loopback] InetAddress.isLoopbackAddress = true
[Loopback] InetSocketAddress = localhost/127.0.0.1:8080
[Loopback] InetSocketAddress.isUnresolved = false
[LocalHost] InetAddress = lapetus/127.0.1.1
[LocalHost] InetAddress.isAnyLocalAddress = false
[LocalHost] InetAddress.isLinkLocalAddress = false
[LocalHost] InetAddress.isLoopbackAddress = true
[LocalHost] InetSocketAddress = lapetus/127.0.1.1:8080
[LocalHost] InetSocketAddress.isUnresolved = false
[0.0.0.0] InetAddress = /0.0.0.0
[0.0.0.0] InetAddress.isAnyLocalAddress = true
[0.0.0.0] InetAddress.isLinkLocalAddress = false
[0.0.0.0] InetAddress.isLoopbackAddress = false
[0.0.0.0] InetSocketAddress = /0.0.0.0:8080
[0.0.0.0] InetSocketAddress.isUnresolved = false
(snip ... long list of other interfaces)