我是 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;
}
}
jar :
我已经包含了所有的 jar (我一开始遇到的问题已经解决了)
The url i am using is
最佳答案
查看您的 web.xml
文件,您的服务似乎已部署在
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
试试这个网址
http://localhost:8080/rest/hello
或
通过更改 servlet-mapping
来编辑 web.xml
:
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/RestFulWebService/rest/*</url-pattern>
</servlet-mapping>
编辑
您的 getMsg()
方法正在生成 MediaType.TEXT_XML
,并且由于您的输出
不是 XML 格式,因此服务将无法按照请求将响应表示为 XML。
解决方案1 通过任何文本媒体类型编辑注释值,例如:
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getMsg() {
String output = "Jersey say : ";
return output;
}
解决方案2
更改您的输出
,例如:
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getMsg() {
String output = "<something>Jersey say : </something>";
return output;
}
关于java - 使用 jersey 的 java Restful Web 服务出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205314/