[
https://issues.apache.org/jira/browse/CXF-2749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12852669#action_12852669
]
Daniel Kulp commented on CXF-2749:
----------------------------------
Can you test this with CXF 2.2.7? I think this is actually fixed. In
anycase, I cannot reproduce it with 2.2.6 or 2.2.7 using the sun stax stuff
built into the JDK. Any chance you can create a small testcase outside of
WebSphere (since I don't have WebSphere)?
> org.apache.cxf.configuration.spring.JAXBBeanFactory cannot handle elements
> with namespace prefixes
> --------------------------------------------------------------------------------------------------
>
> Key: CXF-2749
> URL: https://issues.apache.org/jira/browse/CXF-2749
> Project: CXF
> Issue Type: Bug
> Components: Configuration, Transports
> Affects Versions: 2.2.6
> Environment: Only when used with Sun StAX implementation 1.4.2; does
> not seem to happen with Woodstox
> Reporter: Jonathan Whitall
> Priority: Minor
>
> I first noticed this when attempting to define the http:conduit element in a
> Spring config file:
> <beans:beans xmlns:http="http://cxf.apache.org/transports/http/configuration"
> xmlns:beans="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://cxf.apache.org/transports/http/configuration
> http://cxf.apache.org/schemas/configuration/http-conf.xsd
> ">
> <http:conduit name="*.http-conduit">
> <http:client ConnectionTimeout="30000" ReceiveTimeout="120000"
> />
> </http:conduit>
> </beans:beans>
> It always fails with the following exception:
> Caused by: javax.xml.bind.UnmarshalException
> - with linked exception:
> [javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,198]
> Message:
> http://www.w3.org/TR/1999/REC-xml-names-19990114#ElementPrefixUnbound?http&http:client]
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:426)
> 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.configuration.spring.JAXBBeanFactory.createJAXBBean(JAXBBeanFactory.java:51)
> ... 124 more
> Caused by: javax.xml.stream.XMLStreamException: ParseError at
> [row,col]:[1,198]
> Message:
> http://www.w3.org/TR/1999/REC-xml-names-19990114#ElementPrefixUnbound?http&http:client
> at
> com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:593)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:160)
> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
> ... 126 more
> Looking at the source code, it appears that CXF is sending the body contents
> of http:conduit verbatim to JAXBBeanFactory for parsing into a JAXB object.
> Apparently, Woodstox doesn't care if there is an unregistered namespace
> prefix, but the Sun StAX implementation does and throws the exception.
> My current workaround is to define the http:conduit element in a separate XML
> file and use it as the default namespace like this:
> <beans:beans xmlns="http://cxf.apache.org/transports/http/configuration"
> xmlns:beans="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://cxf.apache.org/transports/http/configuration
> http://cxf.apache.org/schemas/configuration/http-conf.xsd
> ">
> <conduit name="*.http-conduit">
> <client ConnectionTimeout="30000" ReceiveTimeout="120000" />
> </conduit>
> </beans:beans>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.