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

Pra*_*mha 5 java rest jersey

我正在使用Jersy来开发REST webservices,这是我的简单代码:

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

    }
Run Code Online (Sandbox Code Playgroud)

但是,当我从浏览器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)
Run Code Online (Sandbox Code Playgroud)

而根本原因是:

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)
Run Code Online (Sandbox Code Playgroud)

有人可以指导我,是什么导致这个错误?我发现很难理解这个错误消息,因为它没有提供任何有用的信息来调试.

这是我的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>
Run Code Online (Sandbox Code Playgroud)

我正在使用Jersey 1.8,JDK 1.7和App在Tomcat 7.0上运行.如果需要,我可以提供更多信息.

tec*_*rat 3

您的问题似乎是重复的,并且可能已得到适当解决。前段时间我也遇到了同样的问题。单击此处查看为我解决问题的已接受答案

如果您不愿意点击该链接,首先,尝试将jersey-multipart.jar和添加mimepull.jar到您的项目库中...如果您的项目是 Maven 项目,请将以下依赖项添加到您的pom.xml. 依赖项mimepull应该随之一起提供。

<dependency>
    <groupId>com.sun.jersey.contribs</groupId>
    <artifactId>jersey-multipart</artifactId>
    <version>1.8</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

请记住确保您使用的版本与您在项目中使用的jersey-multipart版本相同。jersey

如果上述解决方案无法解决您的问题,您可能还想在此处查看更多有用的提示。干杯!