我在尝试访问以下REST服务时遇到以下问题...我正在使用 Apache Jersey 实现来开发 REST 服务。
仅当我尝试 JAXB 时,我才面临以下问题,即...,用于将响应类型生成为 JSON。
下面是我正在使用的 JAR 列表。
jersey-bundle_1.0.0.0_1-1-5-1.jar
jsr311-api-1.0.jar
jackson-core-asl_1.0.0.0_1-1-1.jar
jettison_1.0.0.0_1-1.jar
下面是异常跟踪...
Problem accessing /service/calender/testRest. Reason:
javax.ws.rs.core.Response$Status.getReasonPhrase()Ljava/lang/String;
Caused by:
java.lang.
NoSuchMethodError: javax.ws.rs.core.Response$Status.getReasonPhrase()Ljava/lang/String;
at com.sun.jersey.spi.container.ContainerResponse.traceException(ContainerResponse.java:477)
at com.sun.jersey.spi.container.ContainerResponse.onException(ContainerResponse.java:452)
at com.sun.jersey.spi.container.ContainerResponse.mapWebApplicationException(ContainerResponse.java:407)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1036)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:941)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:932)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:384)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:451)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:632)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
我的 web.xml
<servlet>
<servlet-name>Calender</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.punith.calender.application.CalenderApp</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Calender</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
和我的处理程序..
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/testRest")
public TestObject testJson() {
TestObject testObj = new TestObject("test", "value");
return testObj;
/*return "Hello World";*/
}
我的 TestObject 类..
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="testObject")
public class TestObject {
public String name;
public String value;
public TestObject(String objName, String objValue) {
this.name = objName;
this.value = objValue;
}
我非常怀疑使用的罐子,我猜我必须为 JAXB 使用更多的罐子。如果请让我知道下载 JAR 的链接…
问候蓬蒂