« Return to Thread: Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared

Re: Antwort: Re: Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared [Virus checked]

by dkulp :: Rate this Message:

Reply to Author | View in Thread


Did some snooping...   The RI seems to have the same problem:
http://forums.java.net/jive//message.jspa?messageID=268876

And they mention its a bug in the JDK:
https://jaxp.dev.java.net/issues/show_bug.cgi?id=46

The workaround seems to be to use the latest 1.6 JDK or get the latest  
sun jaxp parser (http://download.java.net/maven/1/com.sun.xml.parsers/jars/ 
)  and throw it in your endorsed dir.

Dan



On Jun 18, 2008, at 2:16 PM, jan.minaroviech@... wrote:

> Hi,
>
> looks like the same problem i have. But my response is invalid also
> according to soapUI validation.
>
> I'm not using any additional interceptors, only default cxfServlet,
> default bus config etc, without security, attachments etc. and I'm  
> using
> jaxWS+jaxB
>
> This is response, which is problem in my case (cxf is client in this  
> case)
>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>   <soapenv:Body>
>      <locationSearchReply
> xmlns="http://www.deltavista.at/schema/locationsearch">
>         <foundLocation>
>            <street>Stephansplatz</street>
>            <houseNumber>1</houseNumber>
>            <city>Wien</city>
>            <zip xsi:type="xsd:string">1010</zip>
>            <country xsi:type="xsd:string">AUT</country>
>            <locationMatch>4</locationMatch>
>            <similarity>92</similarity>
>            <confidence>98</confidence>
>         </foundLocation>
>      </locationSearchReply>
>   </soapenv:Body>
> </soapenv:Envelope>
>
> i have a problem with xsd:string inside reply.
>
> pieces of xsd:
>                                        <element name="zip"
> type="locationsearch:Zip" minOccurs="1"/>
>                        <simpleType name="Zip">
>                                <restriction base="string">
>                                        <minLength value="4"/>
>                                        <maxLength value="7"/>
>                                </restriction>
>                        </simpleType>
>
> when i turn off validation, everything works
>
> best regards
> jano
>
>
>
>
> Daniel Kulp <dkulp@...>
> 06/18/2008 20:05
> Bitte antworten an
> users@...
>
>
> An
> users@...
> Kopie
>
> Thema
> Re: Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx'  
> as a
> QName: the prefix 'ns0' is not declared  [Virus checked]
>
>
>
>
>
>
>
> 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@...
> http://www.dankulp.com/blog
>
>
>
>
>
>
>

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




 « Return to Thread: Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared