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 으로 대체함)