java - 在 Java 中使用 Jersey 时出现错误 $ErrorMessagesException

标签 java rest jersey

我正在使用 Jersy 开发 REST 网络服务,这是我的简单代码:

@GET
@Path("/retrieveCustomerInformation/{jsonString}")
@Produces(MediaType.APPLICATION_JSON)
public String retrieveCustomerInformation(@PathParam("jsonString")JSONObject jsonObject) 
    throws Exception  {
      //Other codes here

    }

但是当我从浏览器 ping 其余服务 url 时,出现以下异常:

javax.servlet.ServletException: Servlet.init() for servlet jersey-serlvet threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)

根本原因是:

com.sun.jersey.spi.inject.Errors$ErrorMessagesException
com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)

谁能指导我,是什么导致了这个错误?我发现很难理解此错误消息,因为它没有提供任何有用的调试信息。

这是我的 web.xml

<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>
                 com.sun.jersey.spi.container.servlet.ServletContainer
            </servlet-class>
    <init-param>
         <param-name>com.sun.jersey.config.property.packages</param-name>
         <param-value>com.test/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>

我正在使用 Jersey 1.8、JDK 1.7,应用程序在 Tomcat 7.0 上运行。如果需要,我可以提供更多信息。

最佳答案

检查冲突的@Path 注释。 这将导致相同的错误。对于通信路径问题,这是一个奇怪的错误,但您可以通过重命名匹配路径来轻松测试它。

以下代码中的兑现路径示例

一些类

@Path("/storage")
public class BookingRestService {

@GET
@Path("/bookings")
@Produces(value = MediaType.APPLICATION_XML)

和另一个类

@Path("/storage")
public class StorageRestService {

通过重命名任何 @Path("/storage") 问题会影响您的工作进度。

关于java - 在 Java 中使用 Jersey 时出现错误 $ErrorMessagesException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20578642/

相关文章:

java - 在某些设备中,全屏模式不会隐藏操作栏

java - 使用 HttpClient 发布 JSONObject 时出错

java - Thymeleaf:将输入文本作为表单操作中的参数传递

rest - 从 ServiceNow REST API 检索文本状态

java - 从 Java 中的输入文件数据创建的数组中创建格式化表

java - 有没有办法通过在 Jackson 中包含数组来确定抽象对象的目标类型?

java - 无法将 Content-Type header 添加到 SSE 端点

Java/Jersey - 使用 ParamInjectionResolver 创建自己的注入(inject)解析器 - 奇怪的行为

rest - PATCH 与 PUT 更新法案

java - Jersey 忽略自定义 ObjectMapper