我有应用程序 myapp.war ,该应用程序根据来自tomcat的JNDI资源获得JMS连接。 Jms实现是activemq-client。但是 activemq-client 需要 slf4j 。我将activemq-client,slf4j和其他依赖项库放入${TOMCAT_HOME}/lib/ext
。
但是 myapp.war 与该slf4j版本不兼容。而且activemq-client与 myapp.war 中的slf4j版本不兼容。
我认为:
${TOMCAT_HOME}/lib/ext
another/directiory
another/directiory
的新Classloader 中隔离创建jms实现实例即这个类加载器的层次结构看起来像:
Bootstrap
|
System
|
---------------------
| Common |
| | pass connection parameters --------------------------------------
| my-jndi-factory <--|--------------------------------->| Isolated class loader with classpath |
--------------------- return ConnectionFactory | `another/directiory` |
/ \ --------------------------------------
/ \
myapp.war otherApp.war
我的问题: