Jersey REST Web服务,带有Tomcat、Eclipse和404-需要另一组眼睛吗

Jersey REST Web服务,带有Tomcat、Eclipse和404-需要另一组眼睛吗,eclipse,rest,tomcat,jersey-2.0,Eclipse,Rest,Tomcat,Jersey 2.0,这应该是如此简单,但它吹我的心。。。我在这里已经阅读了数百个问题,到目前为止,所有的回答都并没有改变我的尝试。显然是时候换一双眼睛了 在尝试进行最简单的rest测试时,我遇到了404错误 我的Tomcat 7.0服务器启动正常。没有错误 我在Eclipse中的项目名称是:atomic_services_poc Tomcat中的上下文设置为:/atomic\u services\u poc 我可以通过以下方式成功返回静态页面: 这是我的web.xml: <servlet> &l

这应该是如此简单,但它吹我的心。。。我在这里已经阅读了数百个问题,到目前为止,所有的回答都并没有改变我的尝试。显然是时候换一双眼睛了

在尝试进行最简单的rest测试时,我遇到了404错误

我的Tomcat 7.0服务器启动正常。没有错误

我在Eclipse中的项目名称是:atomic_services_poc

Tomcat中的上下文设置为:/atomic\u services\u poc 我可以通过以下方式成功返回静态页面:

这是我的web.xml:

<servlet>
    <servlet-name>workflowmanagerserlvet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
         <param-name>jersey.config.server.provider.packages</param-name>
         <param-value>com.tp.wfm.webservice</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>workflowmanagerserlvet</servlet-name>
    <url-pattern>/workflowmanager/*</url-pattern>
</servlet-mapping>
我正在使用SoapUI测试restful请求的GET方法。我已经尝试了下面的许多变体,它们都导致了404错误

获取主机:8080/atomic\u services\u poc/workflowmanager/workflow


在我扔掉这台笔记本电脑之前,请帮帮我…

从您的演示中,我看不出您的设置有任何错误。你没有提到你正在使用的是哪一款球衣,但我猜它比2款大。我相信web.xml中的属性名称是不同的

我建议尝试调试以下内容:

1目前,请拆下

@Produces(MediaType.TEXT_XML)
按照@braunpet的建议,只需使用web浏览器进行测试

2添加一个ResourceConfig类,这样您至少可以调试服务器在启动时正在执行的操作。这非常简单,您可以定义这样一个类:

package com.tp.wfm.application;

import org.glassfish.jersey.server.ResourceConfig;


public class MyApplication extends ResourceConfig {

    public MyApplication() {
        super();

        packages("com.tp.wfm.webservice");
    }

}
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.tp.wfm.application.MyApplication</param-value>
    </init-param>
并按如下方式更改web.xml:

package com.tp.wfm.application;

import org.glassfish.jersey.server.ResourceConfig;


public class MyApplication extends ResourceConfig {

    public MyApplication() {
        super();

        packages("com.tp.wfm.webservice");
    }

}
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.tp.wfm.application.MyApplication</param-value>
    </init-param>
然后在Eclipse中添加一个断点,以确保资源正在加载


我希望有帮助

好的,今天早上我又回到了基础。我在vogella教程中用我的笔记本电脑上的eclipse创建了一个全新的工作区。我用了10分钟的时间在我的笔记本电脑上找到了这个。然后我进入我的问题工作区,一步一步地添加相同的项目。它起作用了

然后我开始添加我的组件,慢慢地一个接一个地,我能够让它们工作。我一定是拼错了什么东西,但我觉得这里也没人能看到,我感觉好多了

好消息是,它正在发挥作用。即使我把vogella的东西拿走了

:


谢谢你的帮助

我也有同样的问题。我花了大约两周的时间寻找解决方案。在通过了20个教程之后,它让我抓狂,为什么我的tomcat仍然显示404响应。我只是想让helloworld示例正常工作,但每次我试图打开ResourcePATH(例如@Path/hello)时,服务器都会显示404。My Web.xml是为jersey 2.x设置的,url参数声明为/rest/*。localhost正确调用了URL:PORT/PROJECT/rest/hello。。但是没有机会

最后,我为自己找到了一个解决方案,可以帮助其他对此感到困扰的人,比如这个问题的作者:

创建项目的.WAR文件并将其放入apache_tomcat/webapps目录中 Eclipse:右键单击项目->导出->as.WAR文件 重新启动Tomcat服务器 在重新启动的服务器上运行应用程序
在那之后,它对我起了作用,我可以连接到我实现的任何@Path。如果我想实现一个新的@Path,我必须重新处理这3个步骤。希望这能有所帮助

您是否请求由您的方法生成的媒体类型?是的,我验证了媒体类型。。。