cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared
Date Wed, 18 Jun 2008 18:05:24 GMT

Very strange.   The message is definitely valid.

Could questions:
1) Do you have any SAAJ type handlers/interceptors on the chain (jaxws  
SOAPHandler, ws-security things, etc...)?

2) I noticed you have a xerces jar...  can you try removing that and  
seeing if the JDK built-in parser will work?  Also, check if you have  
a xalan jar installed and remove that as well.

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  
that still fails, we'll need to dig in more.

Dan



On Jun 17, 2008, at 12:33 PM, Urciolo, Kevin wrote:

> 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

---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog





Mime
View raw message