这应该是如此简单,但它让我大吃一惊......我已经阅读了数百个问题,到目前为止,没有一个回复对我所尝试的内容产生了影响。显然是另一双眼睛的时间..
我在尝试进行最简单的休息测试时遇到404错误。
我的Tomcat 7.0服务器启动就好了。没有错误。
我在Eclipse中的项目名称是:atomic_services_poc
Tomcat中的Context设置为:/ atomic_services_poc 我可以使用http://localhost:8080/atomic_services_poc/index.html
成功返回静态页面这是我的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>
这是WorkFlowManagerRestService.java的
的java代码package com.tp.wfm.webservice;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/workflow")
public class WorkFlowManagerRestService {
@GET
@Produces(MediaType.TEXT_XML)
public String sayXMLHello()
{
return "Data Return";
}
}
我正在使用SoapUI来测试restful请求的GET方法。我尝试过以下各种变体,它们都会导致404错误。
获取主持人:8080 / atomic_services_poc / workflowmanager / workflow
在我扔这台笔记本电脑之前请帮忙......
答案 0 :(得分:0)
我从你所展示的内容中看不出任何错误。你没有提到你正在使用哪个泽西岛版本,但我想大于2.(我相信泽西岛&lt; 2,web.xml中属性的名称不同)。
我建议以下方法尝试调试:
(1)暂时删除
@Produces(MediaType.TEXT_XML)
根据@braunpet的建议,并使用您的网络浏览器进行测试
(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");
}
}
并改变你的web.xml:
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.tp.wfm.application.MyApplication</param-value>
</init-param>
然后在Eclipse中添加断点以确保您的资源正在加载。
我希望它有所帮助!
答案 1 :(得分:0)
好的,所以今天早上我回到基础。我在vogella教程的笔记本电脑上用eclipse创建了一个全新的工作区。我在10分钟内完成了这台笔记本电脑的工作。然后我去了我的问题工作区并逐步添加了相同的项目。它起作用了......
然后我开始逐个添加我的组件,然后慢慢地逐个添加,我能够让它们正常工作。我一定有某种类型的拼写或错误的东西,但我感觉更好,这里没有人能看到它。
它现在正在运作的好消息。 (即使我删除了vogella的东西)..
:)
感谢所有帮助!
答案 2 :(得分:0)
localhost:PORT/PROJECT/rest/hello
已正确调用该网址,但没有机会。
最后,我为自己找到了一个解决方案,可以帮助其他困扰此事的人(比如这个问题的作者):
之后,它对我有用,我能够连接到我实现的任何@Path(&#34;&#34;)。如果我想实现一个新的@Path,我必须重新处理3个步骤。希望这会有所帮助!