Java Jax-rsapi url映射

Java Jax-rsapi url映射,java,jax-rs,Java,Jax Rs,我似乎无法连接,我不知道这里出了什么问题。我正在调试,我得到的只是一个404。我的类ApiServer位于此目录A.B.C.api.users中 <servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class> org.glassfish.jersey.servlet.ServletContainer </servlet

我似乎无法连接,我不知道这里出了什么问题。我正在调试,我得到的只是一个404。我的类ApiServer位于此目录A.B.C.api.users中

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>
        org.glassfish.jersey.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>A.B.C.api</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/users/*</url-pattern>
</servlet-mapping>

curl -v 192.168.92.128:8080/users/


这之后什么都没有,这是否意味着它没有完全初始化?我如何调试Jax-rs呢?

您的方法上似乎没有
@products
注释

@products(MediaType.APPLICATION\u JSON)


如果没有@products,返回的默认mimetype是“text/html”

如果您在Glassfish上部署WAR(或EAR),URL将在REST路径之前包含web应用程序上下文。。。如果您的WAR名为myapp.WAR,则URL可能为:

http://somehost:8080/myapp/users/

我只是想让IntelliJ中的断点被击中。我认为,即使没有这个机会,这种情况也会发生@Produces@mike628虽然他说的对。。。您在哪里定义/users/?您是否希望您的方法是@path(test)@path(/users/)公共响应(您不必做响应,只需返回一个java对象)putContainer。似乎你的url可能是错误的哦,没关系,只是看到了你的模式url。让我写下这个例子,看看我是否能找到问题。。。但在我这么做之前,您是否可以尝试将127.0.0.1作为您的url而不是内部ip?@Mike628另一个快速查看,我注意到您正在将内容类型传递给服务器,但您没有接受application/json的方法。试着把钥匙拿出来header@Mike628是否可以显示更多的web.xml文件?我自己尝试了一个现有的项目,它似乎按照你的期望工作。我改变了它,使它更简单,但仍然没有什么你能在这方面得到帮助吗?如果你想回答自己的问题,我很想看到答案。如果不是的话,我很乐意在这个问题上帮助结对。我想我需要摆脱Glassfish…这是一个嵌入API的JSF程序。我认为这不会起作用。在所有应用程序服务器上,自动为应用程序url加上应用程序上下文前缀是非常标准的行为,这不是玻璃鱼独有的财产。例如,JBoss也会做同样的事情。如果确实需要,可以修改(或删除)应用程序部署的上下文根。有关详细信息,请参阅。如果您可以自由选择此项目中的一些技术,这对我非常有帮助@mike628
Apr 25, 2014 10:26:19 AM org.glassfish.jersey.server.ApplicationHandler initialize
INFO: Initiating Jersey application, version Jersey: 2.7 2014-03-12 18:11:31...
http://somehost:8080/myapp/users/