我是Restful webservices的新手,当我尝试编写weebservice时,我收到404错误。如果我做错了,你能告诉我吗?
的web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>RestFulWebService</display-name>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.api.core.packages</param-name>
<param-value>restful.service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Java类:
package restful.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class JersyService {
@GET
@Produces(MediaType.TEXT_XML)
public String getMsg() {
String output = "Jersey say : ";
return output;
}
}
罐:
我已经包括了所有的罐子(我在开始时遇到的问题已经解决了)
The url i am using is
答案 0 :(得分:0)
查看您的web.xml
文件,您的服务似乎已部署在
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
尝试使用此网址
http://localhost:8080/rest/hello
通过更改web.xml
:
servlet-mapping
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/RestFulWebService/rest/*</url-pattern>
</servlet-mapping>
您的getMsg()
方法正在生成MediaType.TEXT_XML
,并且由于您的output
不是XML格式,因此该服务无法将响应表示为所请求的XML。
解决方案1 按任何文本媒体类型编辑注释值,例如:
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getMsg() {
String output = "Jersey say : ";
return output;
}
解决方案2
更改您的output
,例如:
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getMsg() {
String output = "<something>Jersey say : </something>";
return output;
}