JBoss EAP 6 が、JDK が提供するクラスの一部をロードできない
Issue
-
JDK が提供するクラスの一部を EAP6 がロードできません。
-
JAR ファイルに見つかったクラスを必要とする静的モジュールを使用していますが、このモジュールは rt.jar ファイルではなく BOOTCLASSPATH に追加されています。このモジュールがこのファイルを確認するようにするにはどうすれば良いですか?
-
JBoss EAP6 にデプロイしたアプリケーションが "sun.net.www.protocol.http.HttpURLConnection" クラスをロードしようとすると以下の例外が発生します。
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/SimpleBindDemo].[jsp]] (http-localhost/127.0.0.1:8080-1) Servlet.service() for servlet jsp threw exception: java.lang.ClassNotFoundException: sun.net.www.protocol.http.HttpURLConnection from [Module "deployment.SimpleBindDemo.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131) [jbossweb-7.0.16.Final-redhat-1.jar:]
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:67) [jbossweb-7.0.16.Final-redhat-1.jar:]
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_32]
at java.lang.Class.forName(Class.java:169) [rt.jar:1.6.0_32]
at org.apache.jsp.index_jsp._jspService(index_jsp.java:56)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jbossweb-7.0.16.Final-redhat-1.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.1.Final-redhat-1.jar:1.0.1.Final-redhat-1]
さらに、
Unable to load security provider:
java.lang.ClassNotFoundException: com.sun.net.ssl.internal.ssl.Provider from [Module "deployment.SecureApp.ear:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
さらに、
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/ABC]] (ServerService Thread Pool -- 49) JBWEB000289:Servlet MyServlet threw load() exception: java.lang.NoClassDefFoundError: sun/security/action/GetPropertyAction
- resteasy を使用した場合の NoClassDefFoundError
Servlet.service() for servlet any-servlet threw exception: org.jboss.resteasy.spi.UnhandledException: java.lang.NoClassDefFoundError: com/sun/org/apache/xml/internal/resolver/CatalogManager
rt.jar
のロード時にデプロイメントに失敗します。Jboss 6.3.2 EAP
にアプリケーション war をデプロイすると、サーバーのログにエラーメッセージが出力されます。Jboss が Java ライブラリー rt.jar からクラスをロードできないようです。- 必要に応じて Jboss 設定にモジュールの設定をします、com.sun.jndi.toolkit.url パッケージのエントリーでは、
{JBOSS_HOME}\modules\system\layers\base\sun\jdk\main
フォルダーのmodule.xml
ファイルをアップデートしました。
Caused by: java.lang.ClassNotFoundException: com.sun.jndi.toolkit.url.Uri from [Module "deployment.Apps.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.4.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.4.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.4.Final-redhat-1]
....
- BPMS でインスタンスのデシリアライズ プロセスで、"ClassNotFoundException: sun.security.validator.ValidatorException" が発生します。
10:20:53,679 ERROR [stderr] (pool-23-thread-1) java.lang.IllegalArgumentException:IOException while loading process instance:Error deserializing process instance.
10:20:53,679 ERROR [stderr] (pool-23-thread-1) at org.jbpm.persistence.processinstance.ProcessInstanceInfo.getProcessInstance(ProcessInstanceInfo.java:192)
10:20:53,680 ERROR [stderr] (pool-23-thread-1) at org.jbpm.persistence.processinstance.ProcessInstanceInfo.getProcessInstance(ProcessInstanceInfo.java:165)
10:20:53,680 ERROR [stderr] (pool-23-thread-1) at org.jbpm.persistence.processinstance.JPAProcessInstanceManager.getProcessInstance(JPAProcessInstanceManager.java:139)
10:20:53,680 ERROR [stderr] (pool-23-thread-1) at org.jbpm.process.instance.ProcessRuntimeImpl.getProcessInstance(ProcessRuntimeImpl.java:286)
10:20:53,680 ERROR [stderr] (pool-23-thread-1) at org.jbpm.process.instance.ProcessRuntimeImpl.getProcessInstance(ProcessRuntimeImpl.java:282)
10:20:53,680 ERROR [stderr] (pool-23-thread-1) at org.drools.core.impl.StatefulKnowledgeSessionImpl.getProcessInstance(StatefulKnowledgeSessionImpl.java:1810)
10:20:53,681 ERROR [stderr] (pool-23-thread-1) at org.jbpm.process.instance.timer.TimerManager$ProcessJob.execute(TimerManager.java:316)
10:20:53,681 ERROR [stderr] (pool-23-thread-1) at org.drools.core.time.SelfRemovalJob.execute(SelfRemovalJob.java:34)
10:20:53,681 ERROR [stderr] (pool-23-thread-1) at org.drools.core.time.impl.DefaultTimerJobInstance.call(DefaultTimerJobInstance.java:69)
...
10:20:53,685 ERROR [stderr] (pool-23-thread-1) Caused by: java.io.IOException:Error deserializing process instance.
10:20:53,685 ERROR [stderr] (pool-23-thread-1) at org.jbpm.marshalling.impl.AbstractProtobufProcessInstanceMarshaller.readProcessInstance(AbstractProtobufProcessInstanceMarshaller.java:477)
10:20:53,686 ERROR [stderr] (pool-23-thread-1) at org.jbpm.persistence.processinstance.ProcessInstanceInfo.getProcessInstance(ProcessInstanceInfo.java:184)
10:20:53,686 ERROR [stderr] (pool-23-thread-1) ...28 more
10:20:53,686 ERROR [stderr] (pool-23-thread-1) Caused by: java.lang.ClassNotFoundException: sun.security.validator.ValidatorException
10:20:53,686 ERROR [stderr] (pool-23-thread-1) at org.drools.core.common.ProjectClassLoader.tryDefineType(ProjectClassLoader.java:187)
10:20:53,686 ERROR [stderr] (pool-23-thread-1) at org.drools.core.common.ProjectClassLoader.loadType(ProjectClassLoader.java:177)
10:20:53,687 ERROR [stderr] (pool-23-thread-1) at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:143)
10:20:53,687 ERROR [stderr] (pool-23-thread-1) at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
10:20:53,687 ERROR [stderr] (pool-23-thread-1) at java.lang.Class.forName0(Native Method)
10:20:53,687 ERROR [stderr] (pool-23-thread-1) at java.lang.Class.forName(Class.java:270)
10:20:53,688 ERROR [stderr] (pool-23-thread-1) at org.drools.core.util.ClassUtils.getClassFromName(ClassUtils.java:755)
10:20:53,688 ERROR [stderr] (pool-23-thread-1) at org.drools.core.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:57)
10:20:53,688 ERROR [stderr] (pool-23-thread-1) at org.drools.core.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:62)
10:20:53,688 ERROR [stderr] (pool-23-thread-1) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
10:20:53,688 ERROR [stderr] (pool-23-thread-1) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
10:20:53,688 ERROR [stderr] (pool-23-thread-1) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
10:20:53,689 ERROR [stderr] (pool-23-thread-1) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
10:20:53,689 ERROR [stderr] (pool-23-thread-1) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
10:20:53,689 ERROR [stderr] (pool-23-thread-1) at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:500)
10:20:53,689 ERROR [stderr] (pool-23-thread-1) at java.lang.Throwable.readObject(Throwable.java:914)
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
- Red Hat JBoss BPM Suite (BPMS)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.