Java 在tomcat中部署war文件时遇到AMQP连接器中的问题
在mule tomcat中部署war文件时,AMQP连接器中出现错误。 在anypointstudio中工作正常,但在tomcat中部署时,我遇到以下错误Java 在tomcat中部署war文件时遇到AMQP连接器中的问题,java,tomcat,mule,amqp,mule-studio,Java,Tomcat,Mule,Amqp,Mule Studio,在mule tomcat中部署war文件时,AMQP连接器中出现错误。 在anypointstudio中工作正常,但在tomcat中部署时,我遇到以下错误 org.mule.api.lifecycle.LifecycleException: Failed to invoke lifecycle phase "start" on object: AmqpConnector { name=AMQP_0_9_Connector lifecycle=initialise this=3eb84
org.mule.api.lifecycle.LifecycleException: Failed to invoke lifecycle phase "start" on object: AmqpConnector
{
name=AMQP_0_9_Connector
lifecycle=initialise
this=3eb847dc
numberOfConcurrentTransactedReceivers=4
createMultipleTransactedReceivers=true
connected=false
supportedProtocols=[amqp]
serviceOverrides=<none>
}
at org.mule.lifecycle.phases.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:248)
at org.mule.lifecycle.RegistryLifecycleCallback.doApplyLifecycle(RegistryLifecycleCallback.java:91)
at org.mule.lifecycle.RegistryLifecycleCallback.onTransition(RegistryLifecycleCallback.java:67)
at org.mule.lifecycle.RegistryLifecycleManager.invokePhase(RegistryLifecycleManager.java:140)
at org.mule.lifecycle.RegistryLifecycleManager.fireLifecycle(RegistryLifecycleManager.java:111)
at org.mule.registry.AbstractRegistryBroker.fireLifecycle(AbstractRegistryBroker.java:88)
at org.mule.registry.MuleRegistryHelper.fireLifecycle(MuleRegistryHelper.java:141)
at org.mule.lifecycle.MuleContextLifecycleManager$MuleContextLifecycleCallback.onTransition(MuleContextLifecycleManager.java:91)
at org.mule.lifecycle.MuleContextLifecycleManager$MuleContextLifecycleCallback.onTransition(MuleContextLifecycleManager.java:87)
at org.mule.lifecycle.MuleContextLifecycleManager.invokePhase(MuleContextLifecycleManager.java:69)
at org.mule.lifecycle.MuleContextLifecycleManager.fireLifecycle(MuleContextLifecycleManager.java:61)
at org.mule.DefaultMuleContext.start(DefaultMuleContext.java:294)
at org.mule.config.builders.MuleXmlBuilderContextListener.initialize(MuleXmlBuilderContextListener.java:96)
at org.mule.config.builders.MuleXmlBuilderContextListener.contextInitialized(MuleXmlBuilderContextListener.java:70)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5099)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5615)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "org/apache/commons/logging/Log"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3175)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1372)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1860)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
org.mule.api.lifecycle.LifecycleException:未能在对象AmqpConnector上调用生命周期阶段“启动”
{
名称=AMQP_0_9_连接器
生命周期=初始化
这=3eb847dc
ConcurrentTransacticedReceiver的数量=4
CreateMultipleTransactedReceiver=true
已连接=错误
supportedProtocols=[amqp]
服务覆盖=
}
位于org.mule.lifecycle.phases.DefaultLifecyclePase.applyLifecycle(DefaultLifecyclePase.java:248)
位于org.mule.lifecycle.RegistryLifecycleCallback.doApplyLifecycle(RegistryLifecycleCallback.java:91)
位于org.mule.lifecycle.RegistryLifecycleCallback.onTransition(RegistryLifecycleCallback.java:67)
位于org.mule.lifecycle.RegistryLifecycleManager.InvokePase(RegistryLifecycleManager.java:140)
在org.mule.lifecycle.RegistryLifecycleManager.fireLifecycle(RegistryLifecycleManager.java:111)上
位于org.mule.registry.AbstractRegistryBroker.fireLifecycle(AbstractRegistryBroker.java:88)
在org.mule.registry.MuleRegistryHelper.fireLifecycle上(MuleRegistryHelper.java:141)
位于org.mule.lifecycle.MuleContextLifecycleManager$MuleContextLifecycleCallback.onTransition(MuleContextLifecycleManager.java:91)
位于org.mule.lifecycle.MuleContextLifecycleManager$MuleContextLifecycleCallback.onTransition(MuleContextLifecycleManager.java:87)
位于org.mule.lifecycle.MuleContextLifecycleManager.invokePase(MuleContextLifecycleManager.java:69)
位于org.mule.lifecycle.MuleContextLifecycleManager.fireLifecycle(MuleContextLifecycleManager.java:61)
在org.mule.DefaultMuleContext.start(DefaultMuleContext.java:294)
位于org.mule.config.builders.MuleXmlBuilderContextListener.initialize(MuleXmlBuilderContextListener.java:96)
位于org.mule.config.builders.MuleXmlBuilderContextListener.contextInitialized(MuleXmlBuilderContextListener.java:70)
位于org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5099)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5615)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
位于org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092)
位于org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:745)
原因:java.lang.LinkageError:加载程序约束冲突:加载程序(org/apache/catalina/loader/WebappClassLoader的实例)以前启动了名为“org/apache/commons/logging/Log”的其他类型的加载
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:800)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3175)
位于org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1372)
位于org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1860)
位于org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
我正在使用mule 3.8.0,我的流程如下
<amqp:connector name="AMQP_0_9_Connector" validateConnections="true" host="XXX.XX" username="XX" password="XX" doc:name="AMQP-0-9 Connector"/>
<flow name="rabbitmq_mavenFlow">
<servlet:inbound-endpoint path="/message" responseTimeout="10000" doc:name="Servlet"/>
<set-payload value="test message " doc:name="Set Payload"/>
<amqp:outbound-endpoint queueName="orders" queueDurable="true" responseTimeout="10000" exchange-pattern="request-response" connector-ref="AMQP_0_9_Connector" doc:name="AMQP-0-9"/>
请帮我解决这个问题
谢谢@user3855589,您可能有两个不同版本的commons日志:一个在war中,另一个在tomcat中。您应该将war中的一个放在提供的范围内(如果您使用的是maven),或者将其从war中排除,然后在Tomcat中部署它。看看一个类似的例子