首页 文章

org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:找不到类型的响应对象的MessageBodyWriter:媒体类型:application / xml

提问于
浏览
4
@POST
@Path("/getmethod")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_XML)
Response getMethod(SomeVO someVO);

在我的* .ear中我可以看到resteasy-jaxb-provider-2.2.0.GA.jar和resteasy-jaxrs-2.2.1.GA.jar都存在,但在尝试访问此方法时,我遇到此错误:

[org.jboss.resteasy.core.SynchronousDispatcher](http- / 0.0.0.0:8080-1)执行POST失败// getmethod:org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:无法找到类型的响应对象的MessageBodyWriter :*媒体类型的VO:org.jboss.resteasy.core.ServerResponse.writeTo中的application / xml(ServerResponse.java:216)[resteasy-jaxrs-2.3.3.Final-redhat-1.jar:2.3.3 . Final-redhat-1]

org.jboss.resteasy.core.SynchronousDispatcher.writeJaxrsResponse(SynchronousDispatcher.java:585)

[resteasy-jaxrs-2.3.3.Final-redhat-1.jar:2.3.3.Final-redhat-1] org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:506)[resteasy- jaxrs-2.3.3.Final-redhat-1.jar:2.3.3.Final-redhat-1]在org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)[resteasy-jaxrs-2.3 . 3.Final-redhat-1.jar:2.3.3.Final-redhat-1]在org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)[resteasy-jaxrs-2.3 . 3.Final-redhat-1.jar:2.3.3.Final-redhat-1]在org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)[resteasy-jaxrs-2.3 . 3.Final-redhat-1.jar:2.3.3.Final-redhat-1] org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)[resteasy-jaxrs-2.3 . 3.Final-redhat-1.jar:2.3.3.Final-redhat-1],位于javax.servlet.http.HttpServlet.service(HttpServlet.java:847)[jboss-servlet-api_3.0_spec-1.0.1 . 最终的redhat-1.ja r:1.0.1.Final-redhat-1]在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)[jbossweb-7.0.16.Final-redhat-1.jar:] at org . apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)[jbossweb-7.0.16.Final-redhat-1.jar:] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275 )[jbossweb-7.0.16.Final-redhat-1.jar:] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)[jbossweb-7.0.16.Final-redhat-1.jar :] org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)[jboss-as-web-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat- 1]在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)[jbossweb-7.0.16.Final-redhat-1.jar:] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:102)[jbossweb-7.0.16.Final-redhat-1.jar:] at org.apache.catalina.core.StandardEngineValve .invoke(StandardEngineValve.java:109)[jbossweb-7.0.16.Final-redhat-1.jar:] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)[jbossweb-7.0.16 .Final-redhat-1.jar:]在org.apache的org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)[jbossweb-7.0.16.Final-redhat-1.jar:] . coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:679)[jbossweb-7.0.16.Final-redhat-1.jar:] at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint) .java:931)[jbossweb-7.0.16.Final-redhat-1.jar:] java.lang.Thread.run(Unknown Source)[rt.jar:1.7.0_09]

2 回答

  • 8

    我没有在VO类属性中添加注释 .

    样品:

    import javax.xml.bind.annotation.XmlAttribute;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name = "user")
    public class TestVo {
    
        String order;
        String serial;
        int number;
    
        @XmlElement
        public String getorder() {
            return order;
        }
    
        public void setorder(String order) {
            this.order = order;
        }
    
        @XmlElement
        public String getserial() {
            return serial;
        }
    
        public void setserial(String serial) {
            this.serial = serial;
        }
    
        @XmlAttribute
        public int getnumber() {
            return number;
        }
    
        public void setnumber(int number) {
            this.number = number;
        }
    
    }
    
  • 1

    你可以通过参考下面的链接解决它..他建议添加org.jboss.resteasy resteasy-jaxb-provider 2.2.0.GA jar

    http://www.mkyong.com/webservices/jax-rs/resteasy-could-not-find-messagebodywriter-for-response-object-of-typexx-of-media-type-applicationxml/

相关问题