title: Exception while trying to use jersey and jaxb
body: <p>The following code: </p>
  
  <pre><code>@POST
  @Path("/previous-status/{current}")
  @Consumes(MediaType.APPLICATION_XML)
  @Produces(MediaType.TEXT_PLAIN)
  public String getPreviousStepStatus(@PathParam("current") JAXBElement&lt;WorkflowStep&gt; step) {
      WorkflowStep wfStep = step.getValue();
      return DBAccessor.getPrevStepStatus(wfStep);
  }
  </code></pre>
  
  <p>Produces the following exception:</p>
  
  <pre><code>javax.servlet.ServletException: Servlet.init() for servlet Jersey Rest Service threw exception
      org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
      org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
      org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
      org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
      org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
      org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
      org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
      java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      java.lang.Thread.run(Thread.java:662)
  
  root cause
  
  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)
      com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
      com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:766)
      com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:488)
      com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
      com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
      com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
      com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
      com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
      javax.servlet.GenericServlet.init(GenericServlet.java:160)
      org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
      org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
      org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
      org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
      org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
      org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
      org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
      java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      java.lang.Thread.run(Thread.java:662)
  </code></pre>
  
  <p>If it is commented I don't get the exception. The currently used libraries in the web application are: </p>
  
  <pre><code>asm-3.1.jar
  jersey-core-1.11.jar
  jersey-server-1.11.jar
  jsr311-api-1.1.1.jar
  jersey-servlet-1.11.jar
  activation.jar (part of jaxb distribution)
  jaxb-api.jar
  jaxb-impl.jar
  stax-api-1.0.1.jar
  woodstox-core-asl-4.1.2.jar
  </code></pre>
  
  <p>The reason I have included the last 5 libraries in the list is this article from <a href="http://www.ibm.com/developerworks/web/library/wa-aj-tomcat/#resources" rel="nofollow">developer works</a> </p>
  
  <p>Furthermore from the tomcat start up log I see the following: </p>
  
  <pre><code>SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
    SEVERE: Missing dependency for method public java.lang.String restful.SilverLine.getPreviousStepStatus(javax.xml.bind.JAXBElement) at parameter at index 0
    SEVERE: Method, public java.lang.String restful.SilverLine.getPreviousStepStatus(javax.xml.bind.JAXBElement), annotated with POST of resource, class restful.SilverLine, is not recognized as valid resource method.
  </code></pre>
  
  <p>Any ideas will be appreciated?</p>