Weblogic 12.2.1.0.0 deployment issues
Compatible Application Servers
Oracle WebLogic Server is no longer supported as an application server for the iGrafx Platform as of version 17.7. Oracle WebLogic Server 12c does not support the 17.7 prerequisite of Java 11. Please note, even though Oracle WebLogic Server 14 is slated to support Java 11, the iGrafx Platform will no longer support any version of Oracle WebLogic Server as of version 17.7.
Problem
The deployment of the iGrafx Platform ear fails with a message similar to:
<Error> <javax.enterprise.resource.webcontainer.jsf.config> <BEA-000000> <Critical error during deployment: javax.xml.parsers.FactoryConfigurationError: Provider for class javax.xml.parsers.DocumentBuilderFactory cannot be created at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:311) at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:267) at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:120) at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:400) at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:227) Truncated. see log file for complete stacktrace Caused By: java.lang.RuntimeException: Provider for class javax.xml.parsers.DocumentBuilderFactory cannot be created at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:308) at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:267) at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:120) at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:400) at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:227) Truncated. see log file for complete stacktrace Caused By: java.util.ServiceConfigurationError: javax.xml.parsers.DocumentBuilderFactory: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not a subtype at java.util.ServiceLoader.fail(ServiceLoader.java:239) at java.util.ServiceLoader.access$300(ServiceLoader.java:185) at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376) at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) at java.util.ServiceLoader$1.next(ServiceLoader.java:480) Truncated. see log file for complete stacktrace >
Cause
- Oracle introduced a classloader issue in JAXP/XML processing when moving from version 12.1 to 12.2
- Weblogic has a bug that prevents proper Spring Application Context loading when no Servlet XML file is present. Weblogic released a patch for this, but upgrading to the newest version is the safer way.
Further explanation on the cause can be found here: http://stackoverflow.com/questions/34525967/spring-boot-exception-could-not-open-servletcontext-resource-web-inf-dispatch and here https://github.com/spring-projects/spring-boot/issues/5549
There is a support ticket with Oracle that is not publicly available that was reported and they fixed it with the newest Weblogic 12c R2 release.
Solution
- Because of the classloader issues the following files will need to be removed from the iGrafxWebApp.war file that is located inside the EAR file:
WEB-INF/lib/xercesImpl-2.10.0.jar
WEB-INF/lib/xml-apis-1.4.01.jar
WEB-INF/lib/xmlsec-1.5.8.jar - You need to upgrade the Weblogic installation to 12.2.1.2.0
Related articles