【问题标题】:Jersey RESTful Web Service Connection RefusedJersey RESTful Web 服务连接被拒绝
【发布时间】:2014-12-17 11:20:26
【问题描述】:

我正在尝试在我的本地 OS X 机器上运行 Jersey 服务器。

到目前为止,我已经按照 Jersey 网站的说明执行了这三个命令:

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.14

mvn clean test

mvn exec:java

它似乎工作正常,因为最后一个命令打印了这个:

Dec 17, 2014 12:05:15 PM org.glassfish.grizzly.http.server.NetworkListener start
INFO: Started listener bound to [localhost:8080]
Dec 17, 2014 12:05:15 PM org.glassfish.grizzly.http.server.HttpServer start
INFO: [HttpServer] Started.
Jersey app started with WADL available at http://localhost:8080/myapp/application.wadl
Hit enter to stop it...

但是,当尝试在浏览器中调用 http://localhost:8080 时,我收到地址无法访问错误。我也用 telnet 测试过:

telnet localhost 8080

返回连接被拒绝错误。显然,Jersey servlet“认为”它在本地侦听端口 8080,但绝对不是。我尝试使用 127.0.0.1 而不是 localhost 来访问它,并且我尝试在不同的端口上运行 Jersey。似乎没有什么可以解决的。

我在 OS X 10.10 上运行 Jersey 2.1.4 和 Maven 3.2.3 并使用 Java 1.8.0。

编辑:没有防火墙阻止传入连接。我已将其关闭以消除这种可能性。

【问题讨论】:

  • 听起来您的防火墙阻止了服务器套接字。
  • 不,我不知道。关闭防火墙是我做的第一件事,以确保这不是原因。很抱歉没有在我的问题中添加。
  • 发布netstat -tlp的输出。
  • $ netstat -tlp > netstat: option requires an argument -- p
  • @arik OS X 是 BSD。

标签: java rest maven jersey connection-refused


【解决方案1】:

好的,我已经找到解决方案了。

默认的基本 URI 是 http://localhost:8080/myapp。你可以在Main.java第16行看到它:

public static final String BASE_URI = "http://localhost:8080/myapp/";

我将localhost 更改为0.0.0.0,它成功了!

public static final String BASE_URI = "http://0.0.0.0:8080/myapp/";

非常感谢您的帮助,很抱歉我最终回答了我自己的问题。我希望它对将来的一些人有所帮助。

【讨论】:

    【解决方案2】:

    如果你不需要使用 glassfish 堆栈:我更喜欢原型

    com.sun.jersey.archetypes:jersey-quickstart-webapp

    与码头:

    替换你 pom 的 plugins 部分的 glassfish 插件

    <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.2.v20140723</version> </plugin>

    现在您可以使用mvn jetty:run 运行其余服务

    祝你好运

    【讨论】:

    • 感谢您的提示!碰巧的是,泽西岛是规范的一部分,所以我不能使用你的解决方案。但也许其他一些可怜的人会觉得这很有帮助;)
    • @arik 我的解决方案仍然使用 Jersey,只是运行它的服务器(用于测试)不同(jetty iso glassfish)
    猜你喜欢
    • 2011-02-02
    • 2011-12-14
    • 1970-01-01
    • 2016-01-31
    • 2015-09-07
    • 2012-04-03
    • 2019-06-01
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多