[英]RESTful web service with apache cxf
我已经使用apache cxf在Java中开发了SOAP Web服务,现在我已经在RESTful中开发了相同的服务。
我在雄猫上部署Web服务时遇到了一些麻烦。 实际上,我不知道如何配置我的web.xml
或任何其他XML文件。
在线上有很多示例,但到目前为止我所尝试的所有方法均无效。
为了构建项目,我使用了Ant构建工具。
有人知道一些好提示吗?
这里我的服务类用来测试教程
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
@Path("/book")
public class BookService {
@GET
@Path("{id}")
@Produces({"application/xml","application/json"})
public Book getBookForId(@PathParam("id") int id) {
Book book = null
book = DB.getBookForId();
if(book == null){
return Response.status(Response.Status.BAD_REQUEST).build();
}else{
return Response.ok(book).build();
}
}
}
而且我的web.xml大多数时候看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<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"
version="3.0">
<display-name>REST</display-name>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
Apache CXF的示例和其他示例“很容易理解”,但是快速的是,我到目前为止所做的工作不起作用。
我的Web服务已部署在我的tomcat上,但是每次出现这样的错误:
Servlet.service() for servlet [Jersey Web Application] in context with path [/WebServices] threw exception [L''exécution de la servlet a lancé une exception] with root cause
java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:669)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
我知道这种错误是愚蠢的,但我没有得到Zzz。
我必须使用jdk 1.6.0.45,所以我不能尝试使用jdk 1.7和更高版本的示例。 事实是大多数例子告诉使用Jersey 2.18 ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.