Jersey-REST-Fehler, MessageBodyWriter nicht gefunden für media-type=application/json

Bekomme ich MessageBodyWriter nicht gefunden " - Fehler, wenn ich die aufrufen web service-Aufruf.

Ich habe genson-1.1.jar in meinem classpath die, wie ich glaube annehmen zu enthalten, die MessageBodyWriter Umsetzung. Doch ich bekomme diese Fehlermeldung.

Ich bin mit Jersey 2.13.

Ich habe auch versucht es ohne Registrierung der "GensonJsonConverter.class" und noch immer gibt die gleichen Fehler.

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {  

    ClientConfig config = new ClientConfig();
    WebTarget target = client.target("http://localhost:8080/WebServices/rest/hello");
    target.path("Lion King");
    target.register(GensonJsonConverter.class);
    String response = target.request().accept(MediaType.APPLICATION_JSON).get(String.class);
    resp.getWriter().print(response);
}

@Path("hello")
public class Hello {        
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Book getThisBook(@PathParam("bookName") String bookName){
        return new Book(bookName, "Msn", new Date());
    }
}

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" id="WebApp_ID" version="3.0">
  <display-name>WebServices</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
      <servlet-name>Jersey Rest Service</servlet-name>
      <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
      <init-param>
          <param-name>jersey.config.server.provider.packages</param-name>
          <param-value>com.webservices</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet>
      <servlet-name>myServlet</servlet-name>
      <servlet-class>com.webservices.servlet.MyServlet</servlet-class>
  </servlet>

  <servlet-mapping>
      <servlet-name>Jersey Rest Service</servlet-name>
      <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
      <servlet-name>myServlet</servlet-name>
      <url-pattern>*.htm</url-pattern>
  </servlet-mapping>

</web-app>

Teil der stack-trace:

SEVERE: MessageBodyWriter not found for media type=application/json, type=class com.webservices.entity.Book, genericType=class com.webservices.entity.Book.
Oct 10, 2014 3:19:49 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [myServlet] in context with path [/WebServices] threw exception
javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error

Jersey-REST-Fehler, MessageBodyWriter nicht gefunden für media-type=application/json

  • Posten Sie Ihre web.xml Datei
  • web.xml gebucht wird
  • Ich benutze jersey 1.18 ich glaube, ich hatte Probleme mit der neueren version von Jersey zu. Vielleicht möchten Sie sich in 1.18
  • Sind Sie sicher, dass diese Gläser eingesetzt werden egal auf welchem server du am laufen?
  • Ja, siehe mein edit oben. Dank
InformationsquelleAutor Susie | 2014-10-10
Schreibe einen Kommentar