- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在尝试设置一个嵌入式 jetty 9 服务器。但是当我尝试时:
mvn clean compile exec:java
执行停止于:
INFO:oejs.Server:com.main.SimpleServer.main(): jetty-9.0.0.RC2
一段时间后我得到如下异常:
WARN:oejuc.AbstractLifeCycle:com.main.SimpleServer.main(): FAILED org.eclipse.jetty.io.SelectorManager$ManagedSelector@45a0110e keys=-1 selected=-1: java.io.IOException: Unable to establish loopback connection
java.io.IOException: Unable to establish loopback connectionjava.net.ConnectException: Connection refused: connect
我的代码是这样的:
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);
}
}
和
public class SimpleServer {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
server.setHandler(new HelloHandler());
server.start();
server.join();
}
}
我的 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>
最佳答案
这意味着您的本地主机环回配置错误(例如报告为非环回 IP 地址),或者被某些东西阻止使用(最常见的原因是 Microsoft Windows 策略决策和防火墙规则)。
不太常见的是没有可用 IPv4(仅 IPv6)的机器。
尝试编译并运行这个...
package stackoverflow.jetty;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
public class AddrList
{
public static void main(String[] args)
{
try
{
InetAddress loopback = InetAddress.getLoopbackAddress();
dump("Loopback",loopback);
}
catch (Throwable t)
{
System.out.println("Unable to getLoopbackAddress()");
t.printStackTrace();
}
try
{
InetAddress localhost = InetAddress.getLocalHost();
dump("LocalHost",localhost);
}
catch (Throwable t)
{
System.out.println("Unable to getLocalHost()");
t.printStackTrace();
}
try
{
InetAddress alladdr = InetAddress.getByName("0.0.0.0");
dump("0.0.0.0",alladdr);
}
catch (Throwable t)
{
System.out.println("Unable to getLocalHost()");
t.printStackTrace();
}
try
{
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface iface : Collections.list(nets))
{
try
{
System.out.println("DisplayName = " + iface.getDisplayName());
System.out.println("Name = " + iface.getName());
List<InetAddress> addrs = Collections.list(iface.getInetAddresses());
int i = 0;
for (InetAddress addr : addrs)
{
dump(Integer.toString(i++),addr);
}
}
catch (Throwable t)
{
System.out.println("Unable to InetAddress for NetworkInterface: " + iface.getDisplayName());
t.printStackTrace();
}
}
}
catch (SocketException e)
{
System.out.print("Unable to get all network interfaces");
e.printStackTrace();
}
}
public static void dump(String type, InetAddress addr)
{
String header = String.format("[%s] InetAddress",type);
try
{
System.out.println(header + " = " + addr);
System.out.println(header + ".isAnyLocalAddress = " + addr.isAnyLocalAddress());
System.out.println(header + ".isLinkLocalAddress = " + addr.isLinkLocalAddress());
System.out.println(header + ".isLoopbackAddress = " + addr.isLoopbackAddress());
}
catch (Throwable t)
{
System.out.printf("[%s] Failed to list InetAddress details%n",type);
t.printStackTrace();
}
try
{
header = String.format("[%s] InetSocketAddress",type);
InetSocketAddress isockaddr = new InetSocketAddress(addr,8080);
System.out.println(header + " = " + isockaddr);
System.out.println(header + ".isUnresolved = " + isockaddr.isUnresolved());
}
catch (Throwable e)
{
e.printStackTrace();
}
}
}
这应该会列出您机器上网络接口(interface)的所有变体。如果您遇到错误或异常,您需要先解决该问题,然后才能在该机器上启动 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 个选择:loopback、localhost 和 0.0.0.0(任何接口(interface))作为 Jetty 的可能听众。
关于java - Jetty 服务器未启动 : Unable to establish loopback connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15651644/
每当我运行命令以将 Virtualbox 驱动程序启动 Minishift 到操作系统主机时,它都需要一段疯狂的时间,而且它永远不会结束。有时我什至收到有关达到存储限制的错误消息。 不知道是不是描述h
您好,我正在使用 npm 运行一个基本的 React 项目,我正尝试在 docker 容器中启动它。但是我实际上无法让项目运行。我的 dockerfile 看起来像这样: FROM node:7.8.
所以我想从我的 SSH 终端开始游戏。 这真的很奇怪,当我直接从 Linux GUI 执行此操作时,它可以工作。但是当我使用 SSH 客户端进行远程连接时,它就崩溃了。似乎与我的显示驱动程序有关。 U
我有一个显示图像的动态壁纸。我在 Activity 中更改了该图像。然后我需要通知动态壁纸,以便它知道重新加载资源。 Intent 似乎是完美、简单的解决方案: Intent intent = new
我有一个似乎无法解决的问题。我在 Boot Dashboard 中使用 STS 3.9.2 从 Eclipse (Oxygen) 启动 Spring Boot 应用程序没有任何问题: 但是,当我尝试从
全新的 Python,在我开始摆弄东西之前先设置和安装东西。我的理解是 Python 2.7 和 Python 3.3 之间存在一些显着差异/不兼容,尽管这两个版本都得到了很好的使用,所以我认为最好安
在使用了很长时间的 jQuery 之后,我有一个问题,我正在使用 jQuery 模式(样式)编写一个简单的代码, (function(window, undefined) { var jQu
我正在尝试在 spring boot 应用程序下的非 spring 托管类中配置 Autowired。我在 tomcat 服务器下部署的 Web 应用程序下成功运行了这个。但是当我想在 spring
我对 xmonad 完全陌生,但我想开始使用它来提高我的工作效率。 这是我一直在使用的指南(我使用的是 Apple OS X Snow Leopard) http://xmonad.org/tour.
我试图将Spring Boot指南中的Managing Transactions示例扩展到两个数据源,但是@Transaction注释似乎仅对其中一个数据源有效。 在“Application.java
conEmu 有没有办法默认打开多个不同的选项卡? 我看到这个页面解释了如何使用 splits , 我意识到我可以按 Ctrl + T, 1, Enter,但我希望有一种方法可以自动执行此操作! "%
我正在寻找快速而肮脏的答案。我当时脑子一片空白,盯着屏幕看了 12 个小时以上,我想我中枪了。 我想做一个简单的 SignalR 应用程序作为教程。我找到了这个example ,但我不断收到票证未定义
我正在使用 Azure Powershell cmdlet 来启动/停止 VM。 Start-AzureVM [-ServiceName] [-Name] [ ] Stop-AzureVM [-S
我想使用Powershell脚本代码启动/停止iis和mssql 意味着当我运行ps脚本时,我想启动/停止iis和mssql 我在网上搜索了它,发现了一些代码,但按照我的要求无法正常工作 码: $ii
我在 liferay 工作。我们在我们的项目中使用一个模块来创建 liferay 主题。我使用命令 ant -Ddeploy.war=true 将它部署在服务器中。 war 文件在 liferay 部
我想在已安装 Python 2.7 的 Windows XP 计算机上运行 IPython(版本 0.12)。 我通过 Windows 二进制安装程序安装,但安装后 IPython 没有显示在菜单中,
我从创建了自己的简单图片。 FROM python:2.7.11 RUN mkdir /extra/later/ \ && mkdir /yyy 现在,我可以执行以下步骤: docker run
$(document).ready(function () { setTimeout(function() { window.location.reload(); }, 2000); // 2
我刚刚创建了一个帐户 OpenWeatherMap 我想通过城市 ID API 调用获取当前位置的天气: http://api.openweathermap.org/data/2.5/weather?
我注意到,如果我更改 xcasset 中的图像,启动 Storyboard不会更新。 例如,假设您的启动 Storyboard中有一个 UIImage View ,其中包含一个名为“logo”的蓝色图
我是一名优秀的程序员,十分优秀!