You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Marc Giger (JIRA)" <ji...@apache.org> on 2010/10/05 12:08:37 UTC

[jira] Commented: (CXF-2340) Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared

    [ https://issues.apache.org/jira/browse/CXF-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12917933#action_12917933 ] 

Marc Giger commented on CXF-2340:
---------------------------------

I don't think so:

org.apache.cxf.interceptor.Fault: Unmarshalling Error: UndeclaredPrefix: Cannot resolve 's:string' as a QName: the prefix 's' is not declared. 
        at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:773)
        at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:624)
        at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:150)
        at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:198)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:244)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:110)
        at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:423)
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:178)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:834)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException: UndeclaredPrefix: Cannot resolve 's:string' as a QName: the prefix 's' is not declared.]
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:425)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
        at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:755)
        ... 30 more
Caused by: org.xml.sax.SAXParseException: UndeclaredPrefix: Cannot resolve 's:string' as a QName: the prefix 's' is not declared.
        at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown 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.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(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(Unknown Source)
        at com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startElement(ValidatingUnmarshaller.java:96)
        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:242)
        at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
        ... 32 more

Example request:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
               xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
               xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:s="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
        <wsa:MessageID wsu:Id="Id-1e6c3a80-c355-4461-9138-e506dd1d8ab9">urn:uuid:9b1d9900-43e1-4648-a60f-ba57c7a88ae7
        </wsa:MessageID>
    </soap:Header>
    <soap:Body wsu:Id="Id-008557f0-0f89-4c2f-8e82-34647a611040">
        <Ping xmlns="http://www.swissdec.ch/schema/sd/20090803/SalaryDeclarationServiceTypes">
            <Echo xsi:type="s:string">This is an echo string</Echo>
        </Ping>
    </soap:Body>
</soap:Envelope>

lsof -p 13292 | grep xerces
java    13292 giger  mem    REG               9,12  1363159  1561794 /home/giger/.m2/repository/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar
java    13292 giger  101r   REG               9,12  1363159  1561794 /home/giger/.m2/repository/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar

lsof -p 13292 | grep jaxb
java    13292 giger  mem    REG               9,12    91790  1441809 /home/giger/.m2/repository/org/apache/cxf/cxf-rt-databinding-jaxb/2.2.10/cxf-rt-databinding-jaxb-2.2.10.jar
java    13292 giger  mem    REG               9,12   876610   143004 /home/giger/.m2/repository/com/sun/xml/bind/jaxb-impl/2.1.13/jaxb-impl-2.1.13.jar
java    13292 giger  mem    REG               9,12    89967  1007474 /home/giger/.m2/repository/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar
java    13292 giger  130r   REG               9,12    89967  1007474 /home/giger/.m2/repository/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar
java    13292 giger  139r   REG               9,12   876610   143004 /home/giger/.m2/repository/com/sun/xml/bind/jaxb-impl/2.1.13/jaxb-impl-2.1.13.jar
java    13292 giger  142r   REG               9,12    91790  1441809 /home/giger/.m2/repository/org/apache/cxf/cxf-rt-databinding-jaxb/2.2.10/cxf-rt-databinding-jaxb-2.2.10.jar

Endorsed JAXP to force pickup of *Factories from xerces-2.10.0:
java    13649 giger  DEL    REG               9,12            134849 /home/giger/projects/itserve/lohnstandard/distributor/production/trunk/distributor-core/target/endorsed/jaxp-api-1.4.3.jar
java    13649 giger    3r   REG               9,12   218774   134849 /home/giger/projects/itserve/lohnstandard/distributor/production/trunk/distributor-core/target/endorsed/jaxp-api-1.4.3.jar


> Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'ns0:Xxx' as a QName: the prefix 'ns0' is not declared 
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-2340
>                 URL: https://issues.apache.org/jira/browse/CXF-2340
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 2.2.2
>            Reporter: John Pfeifer IV
>            Assignee: Daniel Kulp
>             Fix For: 2.2.10
>
>         Attachments: cxf-test.tar, StreamReaderProblem.zip
>
>
> Please see the following thread from Nabble outlining the issue.  I have sample code that can be used to test the scenario.
> http://www.nabble.com/Unmarshalling-Error%3A-UndeclaredPrefix%3A-Cannot-resolve-%27ns0%3AXxx%27-as-a-QName%3A-the-prefix-%27ns0%27-is-not-declared-to17918441.html#a24462568
> Basically, when specifying an xsi:type for an element that extends and Complex Type, CXF throws the following error
> [org.xml.sax.SAXParseException: UndeclaredPrefix: Cannot resolve 'ser:getSedans' as a QName: the prefix 'ser' is not declared.]
> 	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
> 	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:335)
> 	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:312)
> 	at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:607)
> 	... 29 more
> Caused by: org.xml.sax.SAXParseException: UndeclaredPrefix: Cannot resolve 'ser:getSedans' as a QName: the prefix 'ser' is not declared.
> 	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
> 	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
> 	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
> 	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:410)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3165)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.getAndCheckXsiType(XMLSchemaValidator.java:2435)
> 	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1922)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.