我在使用Mule中的Jetty连接器时遇到了问题。
在我的mule
配置中:
<jetty:connector name="JettyRest" configFile="jetty-rest.xml" doc:name="Jetty" />
<jetty:connector name="JettySoap" configFile="jetty-soap.xml" doc:name="Jetty" />
在Mule Studio(使用Mule Server Runtime 3.4.0 CE
)中运行时完全没有问题。但是,在将项目导入Anypoint Studio并在Anypoint Studio中运行后(使用Mule Server Runtime 3.5.0 CE
),我收到以下错误:
Cannot load class 'org.mortbay.jetty.Server'
即使我手动将Jetty JAR from here包含在构建路径中,也会出现此错误:
Object of class 'org.eclipse.jetty.server.Server' is not of type 'org.mortbay.jetty.Server'. Object Class and type Class are from different loaders.
使用Mule独立3.4.0 CE
与3.5.0 CE
一起运行时会出现同样的问题。
在jetty-rest.xml
:
<Configure id="Server" class="org.mortbay.jetty.Server">
在jetty-soap.xml
:
<Configure id="ServerForSlow" class="org.mortbay.jetty.Server">
我错过了什么或做错了什么?
答案 0 :(得分:1)
您不需要自己添加Jetty JAR:它们应该作为Mule Jetty Transport的一部分加入您的项目中,这是一个官方支持的核心传输:
Studio是否将Jetty传输添加到您的构建路径/ POM文件中?
答案 1 :(得分:1)
我设法找出导致问题的原因。 Mule 3.5.0 CE
Jetty传输现在使用Jetty 8,我以前使用Jetty 6和Mule 3.4.0 CE
。
MIGRATION.txt
内:
MULE-7061: Jetty transport is now using Jetty 8. Applications using a custom jetty.xml configuration file must update the Jetty classes referenced in this file due to package names changed from version 6 to 7, as explained here: http://wiki.eclipse.org/Jetty/Starting/Porting_to_Jetty_7/Packages_and_Classes
在关注instructions in the link provided后,我将文件转换为使用Jetty 8。