当前位置: 首页 > 知识库问答 >
问题:

接收SOAP消息时出现异常

房唯
2023-03-14

我使用jax-ws 2.2.7来生成web服务。操作签名是:

@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);
<?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>
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!!!

共有1个答案

庄萧迟
2023-03-14

正如异常所说,您不能有空白的目标命名空间。应该是:

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

似乎JAX-WS生成了错误的注释,或者您的WSDL/XSD有一些问题。

 类似资料:
  • 我正在尝试使用Springframework SimpMessageTemplate(默认Stomp实现)来流式传输时间序列数据,以将消息广播到SockJS客户端订阅的主题。但是,这些消息是按顺序接收的。服务器是单线程的,消息按时间戳升序发送。客户端以某种方式接收到了顺序错误的消息。 我使用的是stompjs和springframework的最新版本(4.1.6版本)。

  • 我在运行方案时遇到以下错误。 编辑:在DOCKER容器中运行时发生(使用最新的DOCKER图像用于chrome浏览器,并使用node-chrome-debug) 任何想法都将不胜感激。

  • 在使用SocketIO的时候,消息将被作为活动(event)的两端接收。在客户端使用JavaScript回叫信号。使用Flask-SocketIO服务器,需要为这些活动注册处理器(handler),类似于视图函数怎样处理路由。 下面的例子是为一个未命名的活动创建了一个服务端的活动处理器(event handler): @socketio.on('message') def handle_mess

  • 26.4 接收消息 26.4.1 同步接收 虽然 JMS 通常与异步处理相关,但它也可以同步地消费消息。可重载的receive(..)方法提供了这个功能。在同步接收期间,调用线程阻塞,直到接收到消息。这可能是一个危险的操作,因为调用线程可能无限期地被阻塞。receiveTimeout属性指定了接收者等待消息的超时时间。 26.4.2 异步接收 - 消息驱动的 POJOs Spring 还可以通过使

  • 20.4. 接收消息 20.4.1. 同步接收 虽然JMS一般都和异步处理相关,但它也可以同步的方式使用消息。可重载的receive(..)方法提供了这种功能。在同步接收中,接收线程被阻塞直至获得一个消息,有可能出现线程被无限阻塞的危险情况。属性receiveTimeout指定了接收器可等待消息的延时时间。 20.4.2. 异步接收 - 消息驱动的POJOs 类似于EJB世界里流行的消息驱动bea