[
https://issues.apache.org/jira/browse/CXF-1642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12603883#action_12603883
]
Daniel Kulp commented on CXF-1642:
----------------------------------
Just a note: I think both issues are fixed in the latest snapshots.
First: we added wstx as "optional" to the bundle imports. Thus, it will pick
up wstx if there.
Second: I believe things are now fixed so if woodstox isn't found, it still
will work. We had to change some exception handling and stuff in there.
> CXF Bundle is missing an Import-Package for woodstox
> ----------------------------------------------------
>
> Key: CXF-1642
> URL: https://issues.apache.org/jira/browse/CXF-1642
> Project: CXF
> Issue Type: Bug
> Affects Versions: 2.1, 2.0.6
> Environment: Running CXF with cxf-bundle
> Reporter: Guillaume Sauthier
> Attachments: cxf-stacktrace.txt
>
>
> When running the cxf-bundle (2.0.6) in an OSGi environment (Felix), the Bus
> cannot initialize sucesfuly:
> 2008-06-10 14:54:27,350 : SpringBusFactory.createBus : Failed to create
> application context.
> org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected
> exception parsing XML document from class path resource
> [META-INF/cxf/cxf.xml]; nested exception is
> javax.xml.transform.TransformerException: org.w3c.dom.DOMException:
> NAMESPACE_ERR: An attempt is made to create or change an object in a way
> which is incorrect with regard to namespaces.
> After a bit of digging, I've found that Xerces was used instead of Woodstox.
> This is caused by the TunedDocumentLoader:
> try {
> Class<?> cls =
> Class.forName("com.ctc.wstx.sax.WstxSAXParserFactory");
> saxParserFactory = (SAXParserFactory)cls.newInstance();
> nsasaxParserFactory = (SAXParserFactory)cls.newInstance();
> } catch (Exception e) {
> //woodstox not found, use any other Stax parser
> saxParserFactory = SAXParserFactory.newInstance();
> nsasaxParserFactory = SAXParserFactory.newInstance();
> }
> Indeed, the cxf-bundle do not import the 'com.ctc.wstx.sax' package, so we
> fall back in the Exception handling, and CXF uses the default
> SAXParserFactory, which is provided by Xerces.
> Just to be sure, I've added manually an Import-Package on 'com.ctc.wstx.sax',
> and provided woodstox as a bundle, and everythings works better !
> I've only tested that on 2.0.6, but I've checked the Import-Package of the
> cxf-bundle version 2.1 and there is still no import, so I guess the problem
> is there too.
> What I'm proposing is simply add an optional dependency on Woodstox, so that
> if it is available, it will be used.
> Import-Package com.ctc.wstx.sax:resolution:=optional, *
> BTW, I'm curious, how about normal users who are not using OSGi ? What happen
> if they remove the woodstox.jar ? Will they have the same behavior than me ?
> If so, CXF has a real dependency on woodstox, and it should not try to hide
> it using Class.forName ...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.