Apache Camel 2.15.2无法创建jetty实例

时间:2015-08-26 12:59:13

标签: jetty apache-camel

当我使用2.14版本的camel时,我能够创建jetty实例...但是当tomcat加载应用程序时,2.15.2会给出以下错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jetty' defined in ServletContext resource [/WEB-INF/classes/camel-context.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.camel.component.jetty.JettyHttpComponent]: Is it an abstract class?; nested exception is java.lang.InstantiationException

以下是我的驼峰上下文配置的样子

bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent"

2 个答案:

答案 0 :(得分:0)

Camel在很长一段时间内没有更新他们的Jetty版本。

camel.apache.org/jetty.html上的官方文档引用了codehaus.org(不再存在的网站!)

camel.apache.org/maven/camel-2.14.0/camel-jetty/apidocs/org/apache/camel/component/jetty/JettyHttpComponent.html处的apidoc引用引用了org.eclipse.jetty.server.nio.SelectChannelConnector,这意味着它们正在使用Jetty 7或Jetty 8。

Both Jetty 7 and Jetty 8 are EOL (End of Life)

但一切都没有丢失......

Camel 2.15.0 there is support for Jetty 9开始。

  
      
  • 使用新的camel-component-jetty9模块支持Jetty 9
  •   

建议升级Camel。

答案 1 :(得分:0)

自Camel 2.15起,Jetty组件已分为两个组件camel-jetty8camel-jetty9camel-jetty,只包含一个无法实例化的抽象类。

导入camel-jetty8camel-jetty9后,您只需更换行:

即可
bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent"

通过

bean id="jetty" class="org.apache.camel.component.jetty8.JettyHttpComponent8"

bean id="jetty" class="org.apache.camel.component.jetty9.JettyHttpComponent9"