2015-05-31 16 views
0

Я использую jax-ws 2.2.7 для создания веб-службы. Операция подписи:Исключение при получении сообщения SOAP

@WebMethod 
    @RequestWrapper(localName = "setInvocationAddress", targetNamespace = "http://services.choreos.org/", className = "org.choreos.services.SetInvocationAddress") 
    @ResponseWrapper(localName = "setInvocationAddressResponse", targetNamespace = "http://services.choreos.org/", className = "org.choreos.services.SetInvocationAddressResponse") 
    @Action(input = "http://services.choreos.org/ShopEntrance/setInvocationAddressRequest", output = "http://services.choreos.org/ShopEntrance/setInvocationAddressResponse") 
    public void setInvocationAddress(
      @WebParam(name = "arg0", targetNamespace = "") String arg0, 
      @WebParam(name = "arg1", targetNamespace = "") String arg1, 
      @WebParam(name = "arg2", targetNamespace = "") List<String> arg2); 

Этот веб-сервис работает на Tomcat 6 с Java 7.

Я послал следующее сообщение SOAP к нему:

<?xml version="1.0" encoding="UTF-8"?> 
     <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pre="http://services.choreos.org/"> 
      <SOAP-ENV:Body> 
       <pre:setInvocationAddress> 
        <arg0>CD-shopentrance-marketingapplication</arg0> 
        <arg1>marketingapplication</arg1> 
        <arg2>http://localhost:8080/marketingapplication/marketingapplication</arg2> 
       </pre:setInvocationAddress> 
      </SOAP-ENV:Body> 
     </SOAP-ENV:Envelope> 

В LOCALHOST среде это работает , Но не в производстве.

Когда дела не работал, я получил следующую трассировку стека на стороне сервера (лог-кот):

May 24, 2015 11:29:04 PM com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit handle 
    SEVERE: Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxParsingException: Non-default namespace can not map to empty URI (as per Namespace 1.0 # 2) in XML 1.0 documents 
    at [row,col {unknown-source}]: [1,90] 
    com.sun.xml.ws.protocol.soap.MessageCreationException: Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxParsingException: Non-default namespace can not map to empty URI (as per Namespace 1.0 # 2) in XML 1.0 documents 
    at [row,col {unknown-source}]: [1,90] 
      at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:317) 
      at com.sun.xml.ws.transport.http.HttpAdapter.decodePacket(HttpAdapter.java:344) 
      at com.sun.xml.ws.transport.http.HttpAdapter.access$400(HttpAdapter.java:100) 
      at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:634) 
      at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:264) 
      at com.sun.xml.ws.transport.http.servlet.ServletAdapter.invokeAsync(ServletAdapter.java:218) 
      at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:159) 
      at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:194) 
      at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:80) 
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
      at java.lang.Thread.run(Thread.java:745) 
    Caused by: com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxParsingException: Non-default namespace can not map to empty URI (as per Namespace 1.0 # 2) in XML 1.0 documents 
    at [row,col {unknown-source}]: [1,90] 
      at com.sun.xml.ws.streaming.XMLStreamReaderUtil.wrapException(XMLStreamReaderUtil.java:326) 
      at com.sun.xml.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:99) 
      at com.sun.xml.ws.streaming.XMLStreamReaderUtil.nextContent(XMLStreamReaderUtil.java:169) 
      at com.sun.xml.ws.streaming.XMLStreamReaderUtil.nextElementContent(XMLStreamReaderUtil.java:104) 
      at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:202) 
      at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:338) 
      at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:156) 
      at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:312) 
      ... 22 more 
    Caused by: com.ctc.wstx.exc.WstxParsingException: Non-default namespace can not map to empty URI (as per Namespace 1.0 # 2) in XML 1.0 documents 
    at [row,col {unknown-source}]: [1,90] 
      at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606) 
      at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479) 
      at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:464) 
      at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3058) 
      at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2941) 
      at com.ctc.wstx.sr.BasicStreamReader.handleRootElem(BasicStreamReader.java:2078) 
      at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2058) 
      at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1117) 
      at com.sun.xml.ws.util.xml.XMLStreamReaderFilter.next(XMLStreamReaderFilter.java:96) 
      at com.sun.xml.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:80) 
      ... 28 more 

Кто-то имеет некоторое представление о том, что происходит?

Tks !!!

ответ

0

Как указано в исключении, вы не можете иметь пустое пространство имен. Оно должно быть:

@WebParam(name = "arg0", targetNamespace = "http://services.choreos.org/") 

Похоже JAX-WS генерироваться неправильный аннотацию или у Вас есть проблемы с WSDL/XSD.

Смежные вопросы