【发布时间】:2015-08-20 07:26:23
【问题描述】:
我有一个在码头容器中运行的应用程序,其中一个自定义类加载器将从 /SHARED/
网络容器 1:
Jar 位置:/ci/Shared/
网络容器 2:
App_1/WEB-INF/libs App_2/WEB-INF/libs
我的要求是支持容器 1 中 /ci/Shared/
到目前为止,当应用程序启动时,它的显示类未找到异常。应用无法从 App_1/WEB-INF/libs & App_2/WEB-INF/libs 加载类。
这是类加载器层次结构..
sun.misc.Launcher$ExtClassLoader@4921a90 (Extensions class loader)
sun.misc.Launcher$AppClassLoader@3da997a (System class loader)
startJarLoader@68758d51 (Jetty class loader)
com.test.jetty_ext.NewWebAppProvider$SharedJarsClassLoader@374d1cbd (Shared jars class loader)
WebAppClassLoader=settings@2fee2019 (Webapp class loader)
WebAppClassLoader=taskt@6a57cf0b (2nd Webapp class loader)
这是堆栈跟踪..
Caused by: java.lang.ClassNotFoundException: com.test.ClassAInContainer3
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_55]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_55]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_55]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_55]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_55]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_55]
at org.springframework.util.ClassUtils.forName(ClassUtils.java:258) ~[spring-core.jar:3.2.0.RELEASE]
at org.springframework.amqp.support.converter.DefaultJavaTypeMapper.getClassIdType(DefaultJavaTypeMapper.java:82) ~[spring-amqp.jar:na]
... 16 common frames omitted
2015-08-19 05:38:16.123 UTC,WARN ,App1-web,messaging,com.test.Rabbit,null,SimpleAsyncTaskExecutor-1,Caught an exception while handling a rabbitmq message, Publisher/Consumer should have handled this.
org.springframework.amqp.support.converter.MessageConversionException: failed to resolve class name. Class not found [com.test.ClassAInContainer3]
at org.springframework.amqp.support.converter.DefaultJavaTypeMapper.getClassIdType(DefaultJavaTypeMapper.java:85) ~[spring-amqp.jar:na]
at org.springframework.amqp.support.converter.DefaultJavaTypeMapper.toJavaType(DefaultJavaTypeMapper.java:53) ~[spring-amqp.jar:na]
at org.springframework.amqp.support.converter.JsonMessageConverter.fromMessage(JsonMessageConverter.java:117) ~[spring-amqp.jar:na]
关于如何解决此问题的任何意见?
【问题讨论】:
标签: java maven jetty containers classloader