2013-01-03 21 views
1

我需要一個Web服務,可以採取任何任意的XML字符串。 我正在嘗試使用使用xmAnyElement標記的代碼,但它不起作用。 下面是代碼:我想能夠使用java.xml發送一個通用的XML

@XmlRootElement(name="root") 
@XmlType(propOrder={"header","body"}) 
public class TieHornetqRequest { 
    private String header; 
    private String body; 

    @XmlAnyElement 
    public String getHeader() { 
     return header; 
    } 
    public void setHeader(String header) { 
     this.header = header; 
    } 

    @XmlAnyElement(lax=true) 
    public String getBody() { 
     return body; 
    } 
    public void setBody(String body) { 
     this.body = body; 
    } 
} 

但是我得到的,當我嘗試運行它這個堆棧跟蹤:

16:17:44,372 WARN [org.jboss.resteasy.core.SynchronousDispatcher] (http-127.0.0.1/127.0.0.1:8080-1) Failed executing POST /tieHornetQ/getTieHornetqData: org.jboss.resteasy.spi.UnsupportedMediaTypeException: Cannot consume content type 
    at org.jboss.resteasy.core.registry.Segment.match(Segment.java:117) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.registry.SimpleSegment.matchSimple(SimpleSegment.java:33) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:327) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.registry.SimpleSegment.matchSimple(SimpleSegment.java:44) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:327) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:374) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:367) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:315) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:173) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:118) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.3.Final.jar:] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.1.Final.jar:1.0.1.Final] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.16.Final.jar:] 
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.2.Final.jar:7.1.2.Final] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:679) [jbossweb-7.0.16.Final.jar:] 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931) [jbossweb-7.0.16.Final.jar:] 
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_27] 
+0

你看過「@ Consumes」嗎?我不知道這是否是答案,但它可以工作。 – Zyerah

+0

是的,我有@Consumes在接受XML的類。 – echew

+0

我改變它現在採取一個字符串,它看起來像它的工作。這是最好的解決方案嗎? – echew

回答

0

不是傳遞一個XML的,我剛剛通過一個字符串時,我送我的要求:

public class TieHornetqLookup { 
// private static final Log log = LogFactory.getLog(CreateOrderLookup.class.getName()); 
    private String request; 
    private TieHornetqResponse response; 

    public TieHornetqLookup(String request) { 
     this.request = request; 
    } 

    public TieHornetqResponse getResponse() throws Exception { 

     try{ 

      SendRequest.sender(request); 

      return response; 
     } catch(Exception e) { 
      //log.error("Exception while attempting to get a response: ", e); 
      throw e; 
     } 
    } 
} 
相關問題