Very strange. The message is definitely valid.
2) I noticed you have a xerces jar... can you try removing that and
3) Can you turn off validation. It looks like it's the validator
having an issue, not the unmarshaller. If it unmarshalls OK that
way, we at least know the parser is giving it the correct data. If
> I am running in to an issue when a Java 5 client using JWSDP is
> sending
> a request to my CXF (2.1.1 SNAPSHOT) service. I get an exception,
> Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx' as a
> QName: the prefix 'ns0' is not declared, as shown below. The type
> is an
> extension from a base type. I am assuming this is why "xsi:type" is
> generated by the client since it is not used in other places.
>
> Is there a reason why CXF is having trouble with this?
>
> Type From Schema:
>
> <xs:complexType name="Xxx">
> <xs:complexContent>
> <xs:extension base="tns:Base">
> <xs:sequence>
> <xs:element
> minOccurs="1"
>
> name="a"
> nillable="false" type="xs:boolean" />
> <xs:element
> minOccurs="1"
>
> name="b"
> nillable="false" type="xs:boolean" />
> </xs:sequence>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
>
> ------------------------------------------------------------------------
> ------------------------------------------------------------------------
> -----
>
> XML Generated:
>
> <?xml version="1.0"?>
> <env:Envelope xmlns:env="
http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
> xmlns:enc="
http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns0="
http://mdc.com">
> <env:Body>
> <ns0:createXxxRequest>
> <ns0:xxx xsi:type="ns0:Xxx">
> <ns0:name>xxx</ns0:name>
> </ns0:xxx>
> </ns0:createXxxRequest>
> </env:Body>
> </env:Envelope>
>
> ------------------------------------------------------------------------
> ------------------------------------------------------------------------
> -----
>
> Exception In Log:
>
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unmarshalling Error:
> UndeclaredPrefix:
> Cannot resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared.
> at
> org
> .apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.jav
> a:643)
> at
> org
> .apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.jav
> a:555)
> at
> org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:64)
> at
> org
> .apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLite
> ralInInterceptor.java:183)
> at
> org
> .apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
> hain.java:221)
> at
> org
> .apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
> onObserver.java:78)
> at
> org
> .apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
> ation.java:92)
> at
> org
> .apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
> vletController.java:279)
> at
> org
> .apache.cxf.transport.servlet.ServletController.invoke(ServletControl
> ler.java:161)
> at
> org
> .apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
> rvlet.java:174)
> at
> org
> .apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFSe
> rvlet.java:152)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org
> .apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tionFilterChain.java:252)
> at
> org
> .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erChain.java:173)
> at
> org
> .jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
> r.java:96)
> at
> org
> .apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tionFilterChain.java:202)
> at
> org
> .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erChain.java:173)
> at
> org
> .apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.java:213)
> at
> org
> .apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.java:178)
> at
> org
> .jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
> sociationValve.java:175)
> at
> org
> .jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
> ava:74)
> at
> org
> .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> :126)
> at
> org
> .apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
> :105)
> at
> org
> .jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnecti
> onValve.java:156)
> at
> org
> .apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
> java:107)
> at
> org
> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
> 48)
> at
> org
> .apache.coyote.http11.Http11Processor.process(Http11Processor.java:86
> 9)
> at
> org.apache.coyote.http11.Http11BaseProtocol
> $Http11ConnectionHandler.proc
> essConnection(Http11BaseProtocol.java:664)
> at
> org
> .apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
> .java:527)
> at
> org
> .apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
> Thread.java:112)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.xml.bind.UnmarshalException
> - with linked exception:
> [org.xml.sax.SAXParseException: UndeclaredPrefix: Cannot resolve
> 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared.]
> at
> com
> .sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamEx
> ception(UnmarshallerImpl.java:396)
> at
> com
> .sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unm
> arshallerImpl.java:335)
> at
> com
> .sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unma
> rshallerImpl.java:312)
> at
> org
> .apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.jav
> a:628)
> ... 31 more
> Caused by: org.xml.sax.SAXParseException: UndeclaredPrefix: Cannot
> resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared.
> at
> org
> .apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unkno
> wn Source)
> at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown
> Source)
> at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
> Source)
> at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
> Source)
> at
> org.apache.xerces.impl.xs.XMLSchemaValidator
> $XSIErrorReporter.reportErro
> r(Unknown Source)
> at
> org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown
> Source)
> at
> org
> .apache.xerces.impl.xs.XMLSchemaValidator.getAndCheckXsiType(Unknown
> Source)
> at
> org
> .apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown
> Source)
> at
> org
> .apache.xerces.jaxp.validation.ValidatorHandlerImpl.startElement(Unkn
> own Source)
> at
> com
> .sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startEle
> ment(ValidatingUnmarshaller.java:73)
> at
> com
> .sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStart
> Element(StAXStreamConnector.java:238)
> at
> com
> .sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAX
> StreamConnector.java:172)
> at
> com
> .sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unm
> arshallerImpl.java:333)
> ... 33 more