当我使用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"
答案 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-jetty8
和camel-jetty9
。 camel-jetty
,只包含一个无法实例化的抽象类。
导入camel-jetty8
或camel-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"