Hi,

in our Deployment (EAR Archive) on Wildfly we include the SAXON Library in the 
ear lib folder.

When Apache CXF initializes the WSSec Class (org.apache.wss4j.stax.setup.WSSec) 
this runs in error because the configuration file "security-config.xml" from 
library "org\apache\santuario\xmlsec\main\xmlsec-3.0.2.jar" cannot be loaded 
with SAXON.

Saxon was automatically resolved by the method "SAXTransformerFactory 
saxTransformerFactory = 
(SAXTransformerFactory)SAXTransformerFactory.newInstance();" within 
"org.apache.xml.security.stax.config.XIncludeHandler#startElement".
The "SAXTransformerFactory.newInstance()" resolves the library using the java 
service provider information within the saxon lib.

This is the important stack trace:

org.xml.sax.SAXException: Parser configuration problem: namespace reporting is 
not enabled
       at 
deployment.pos.ear//net.sf.saxon.event.ReceivingContentHandler.getNodeName(ReceivingContentHandler.java:527)
       at 
deployment.pos.ear//net.sf.saxon.event.ReceivingContentHandler.startElement(ReceivingContentHandler.java:374)
       at 
[email protected]//org.apache.xml.security.stax.config.XIncludeHandler.startElement(XIncludeHandler.java:200)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:510)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:731)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1397)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1292)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1141)
       at 
java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:647)
       at __redirected.__XMLReaderFactory.parse(__XMLReaderFactory.java:144)
       at 
[email protected]//org.apache.xml.security.stax.config.XIncludeHandler.startElement(XIncludeHandler.java:159)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:510)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
       at 
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
       at 
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
       at 
java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
       at 
java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:324)
       at java.xml/javax.xml.parsers.SAXParser.parse(SAXParser.java:276)
       at 
[email protected]//org.apache.xml.security.stax.config.Init.init(Init.java:75)
       at 
[email protected]//org.apache.wss4j.stax.setup.WSSec.<clinit>(WSSec.java:62)
       at 
[email protected]//org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor.<init>(WSS4JStaxOutInterceptor.java:92)
       at 
[email protected]//org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JStaxOutInterceptor.<init>(PolicyBasedWSS4JStaxOutInterceptor.java:45)
       at 
[email protected]//org.apache.cxf.ws.security.policy.interceptors.WSSecurityInterceptorProvider.<init>(WSSecurityInterceptorProvider.java:65)
       at 
[email protected]//org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader.registerProviders(WSSecurityPolicyLoader.java:300)
       at 
[email protected]//org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader.<init>(WSSecurityPolicyLoader.java:108)
       at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)


Is there a possibility to prevent that error? I cannot set Apache Xalan as 
default Transformer Factory using Java System Property.

As a workaround I initialize the WSSec class during application startup and set 
the Xalan Transformer Factory only for this.



Kind regards

Marco

Reply via email to