1. 개요

jboss-as-7.1.1.Final 실행 시 에러가 발생한다.


2. 에러 내용 (1)

javax.xml.transform.TransformerFactoryConfigurationError: Provider com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl

에러 전체 내용은 다음과 같다.

Exception in thread "main" javax.xml.transform.TransformerFactoryConfigurationError: Provider com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl could not be instantiated: java.lang.reflect.InvocationTargetException
    at java.xml/javax.xml.transform.FactoryFinder.newInstance(FactoryFinder.java:181)
    at java.xml/javax.xml.transform.FactoryFinder.find(FactoryFinder.java:257)
    at java.xml/javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:126)
    at __redirected.__TransformerFactory.(__TransformerFactory.java:66)
    at __redirected.__JAXPRedirected.initAll(__JAXPRedirected.java:82)
    at org.jboss.modules.Module$1.run(Module.java:85)
    at org.jboss.modules.Module$1.run(Module.java:72)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.jboss.modules.Module.(Module.java:72)
    at org.jboss.modules.Main.main(Main.java:255)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.xml/javax.xml.transform.FactoryFinder.newInstance(FactoryFinder.java:169)
    ... 9 more
Caused by: javax.xml.parsers.FactoryConfigurationError: Provider __redirected.__SAXParserFactory could not be instantiated: java.lang.reflect.InvocationTargetException
    at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:198)
    at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:147)
    at java.xml/javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:226)
    at java.xml/javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:147)
    at java.xml/jdk.xml.internal.JdkXmlUtils.getSAXFactory(JdkXmlUtils.java:378)
    at java.xml/jdk.xml.internal.JdkXmlUtils.(JdkXmlUtils.java:117)
    at java.xml/com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.(TransformerFactoryImpl.java:251)
    ... 14 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:187)
    ... 20 more
Caused by: java.lang.NullPointerException
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:94)
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:87)
    at __redirected.__SAXParserFactory.(__SAXParserFactory.java:102)
    ... 25 more

해당 에러는 자바 버전에 따른 것으로, JBoss 기동 환경은 자바 11 (usr/lib/jvm/java-11-amazon-corretto.x86_64/bin/java)을 사용하고 있었다. 이에 자바 7로 대체하고 해당 에러는 해결됨.

참고>

$ rpm -qa | grep openjdk
java-1.7.0-openjdk-1.7.0.321-2.6.28.2.amzn2.0.1.x86_64
java-1.7.0-openjdk-devel-1.7.0.321-2.6.28.2.amzn2.0.1.x86_64
java-1.7.0-openjdk-headless-1.7.0.321-2.6.28.2.amzn2.0.1.x86_64

3. 에러 내용 (2)

javax.xml.parsers.FactoryConfigurationError: Provider __redirected.__SAXParserFactory could not be instantiated

에러 전체 내용은 다음과 같다.

Exception in thread "main" javax.xml.parsers.FactoryConfigurationError: Provider __redirected.__SAXParserFactory could not be instantiated: java.lang.NullPointerException
    at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:132)
    at jdk.xml.internal.JdkXmlUtils.getSAXFactory(JdkXmlUtils.java:231)
    at jdk.xml.internal.JdkXmlUtils.(JdkXmlUtils.java:77)
    at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.(SchemaParsingConfig.java:319)
    at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.(SchemaParsingConfig.java:254)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.(XSDHandler.java:467)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.(XSDHandler.java:474)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.(XMLSchemaLoader.java:357)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.(XMLSchemaLoader.java:292)
    at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.(XMLSchemaFactory.java:96)
    at javax.xml.validation.SchemaFactoryFinder._newFactory(SchemaFactoryFinder.java:238)
    at javax.xml.validation.SchemaFactoryFinder.newFactory(SchemaFactoryFinder.java:145)
    at javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:202)
    at __redirected.__SchemaFactory.(__SchemaFactory.java:66)
    at __redirected.__JAXPRedirected.initAll(__JAXPRedirected.java:88)
    at org.jboss.modules.Module$1.run(Module.java:85)
    at org.jboss.modules.Module$1.run(Module.java:72)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jboss.modules.Module.(Module.java:72)
    at org.jboss.modules.Main.main(Main.java:255)
Caused by: java.lang.NullPointerException
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:94)
    at __redirected.__RedirectedUtils.loadProvider(__RedirectedUtils.java:87)
    at __redirected.__SAXParserFactory.(__SAXParserFactory.java:102)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:527)
    at java.lang.Class.newInstance(Class.java:383)
    at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:179)
    at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:147)
    at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:219)
    at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:126)
    ... 19 more

이 원인은 자바 7 버전의 미세한 마이너 버전 차이로 발생한 것이다. https://code-examples.net/ko/q/2e29578 를 참고하여 해결하였다. (해당 사이트 내 jboss-modules-1.1.5.GA.jar 를 다운로드 하여 lib/jboss-modules.jar 으로 대체함)