3 Replies Latest reply on Oct 12, 2009 9:16 AM by miljenko

    Unmarshalling Error: prefix ns2 is not bound to a namespace usin PHP client

    miljenko

      Consuming web service (WSDL 1.1, RPC/literal, soap 1.1) with java client works ok, but when consuming with PHP client I get following error (server side):

       

      2009-10-09 16:50:22,064 org.apache.cxf.phase.PhaseInterceptorChain INFO - Interceptor has thrown exception, unwinding now

      org.apache.cxf.interceptor.Fault: Unmarshalling Error: prefix ns2 is not bound to a namespace

       

      This is msg sent from php client (results with error):

      -


       

       

       

      This is msg sent from java client (works ok):

      -


       

       

       

      Thanks for help,

      Miljenko

        • 1. Re: Unmarshalling Error: prefix ns2 is not bound to a namespace usin PHP client
          gseben

          It looks to me that the PHP generated SOAP includes the namespace xmlns:ns2="http://model.ws.clientcomms.berbe.ee.com/" which is not used in the message. Note that the java client doesn't add the unused namespace.

           

          -Gio

          • 2. Re: Unmarshalling Error: prefix ns2 is not bound to a namespace usin PHP cl
            miljenko

            Namespace is used in the message. Only difference is that PHP puts namespace definitions in envelope, and Java in SOAP body. Is both of this regular for rpc/literal soap 1.1 message?

            • 3. Re: Unmarshalling Error: prefix ns2 is not bound to a namespace usin PHP client
              miljenko

              Error is caused by LogicalHandler, which logs message payload. If handler is disabled, everything works ok. Since handlers logs message without error, I'm not sure what is the problem here?

               

              I've tested with JAX-WS RI (Metro) and it works fine. I guess this is a CXF bug?

               

              org.apache.cxf.jaxws.handler.HandlerChainInvoker DEBUG  - invoker for chain size: 1

              org.apache.cxf.phase.PhaseInterceptorChain DEBUG  - Invoking handleMessage on interceptor org.apache.cxf.jaxws.handler.logical.LogicalHandlerInInterceptor@5043d6

              org.apache.cxf.jaxws.handler.HandlerChainInvoker DEBUG  - invoking handlers, direction: inbound

              org.apache.cxf.jaxws.handler.HandlerChainInvoker DEBUG  - invoking handler of type com.ee.cki.clientcomms.ws.LoggingHandler

              org.apache.cxf.phase.PhaseInterceptorChain DEBUG  - Invoking handleMessage on interceptor org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor@1f36af6

              org.apache.cxf.phase.PhaseInterceptorChain DEBUG  - Invoking handleMessage on interceptor org.apache.cxf.interceptor.URIMappingInterceptor@98a7eb

              org.apache.cxf.interceptor.URIMappingInterceptor DEBUG  - Invoking HTTP method POST

              org.apache.cxf.interceptor.URIMappingInterceptor DEBUG  - URIMappingInterceptor can only handle HTTP GET, not HTTP POST

              org.apache.cxf.phase.PhaseInterceptorChain DEBUG  - Invoking handleMessage on interceptor org.apache.cxf.binding.soap.interceptor.RPCInInterceptor@107ffdf

              org.apache.cxf.phase.PhaseInterceptorChain INFO   - Interceptor has thrown exception, unwinding now

              org.apache.cxf.interceptor.Fault: Unmarshalling Error: prefix ns2 is not bound to a namespace

                   at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:629)

                   at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:527)

                   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:108)

                   at org.apache.cxf.binding.soap.interceptor.RPCInInterceptor.handleMessage(RPCInInterceptor.java:180)

                   at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)

                   at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:89)

                   at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:302)

                   at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:265)

                   at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)

                   at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)

                   at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)

                   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

                   at org.mortbay.jetty.Server.handle(Server.java:324)

                   at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)

                   at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)

                   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)

                   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)

                   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)

                   at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)

                   at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

              Caused by: java.lang.IllegalArgumentException: prefix ns2 is not bound to a namespace

                   at com.sun.xml.bind.DatatypeConverterImpl._parseQName(DatatypeConverterImpl.java:340)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.XsiTypeLoader.parseXsiType(XsiTypeLoader.java:89)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.XsiTypeLoader.startElement(XsiTypeLoader.java:67)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:455)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:433)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:275)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:209)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)

                   at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)

                   at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:607)

                   ... 19 more

               

              Edited by: miljenko on Oct 12, 2009 1:14 PM