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

Reply via email to