0
我試圖讓apache駱駝運行在wildfly 9.0.2.Final上。Wildfly不會和駱駝一起玩:IllegalArgumentException:類型不是組件實現
使用指南here,我下載了wildfly包WildFly-Camel 3.3.0並修補了我的wildfly實例。
我的路由配置採用網狀-HTTP,像這樣:
from("netty-http:http://localhost:8459/broker/router.jsp").convertBodyTo(String.class)
所以我加入了駱駝網狀-HTTP版本2.16.2到我的項目。
然而,當我開始的時候,我得到了下面的堆棧跟蹤:
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: netty-http://http://localhost:
8459/broker/router.jsp due to: Cannot auto create component: netty-http
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:590)
at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:79)
at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:211)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:107)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:113)
at org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:69)
at org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:89)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1052)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)
... 39 more
Caused by: org.apache.camel.RuntimeCamelException: Cannot auto create component: netty-http
at org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:412)
at org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:388)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:560)
... 47 more
Caused by: java.lang.IllegalArgumentException: Type is not a Component implementation. Found: org.apache.camel.component.netty.http.NettyHttpComponent
at org.apache.camel.impl.DefaultComponentResolver.resolveComponent(DefaultComponentResolver.java:89)
at org.wildfly.extension.camel.handler.ComponentResolverAssociationHandler$WildFlyComponentResolver.resolveComponent(ComponentResolverAssociationHandler.java:67)
at org.apache.camel.impl.DefaultCamelContext.getComponent(DefaultCamelContext.java:401)
... 49 more
望着駱駝源here,似乎當指定的組件不是org.apache.camel.Component
這個異常被拋出:
if (Component.class.isAssignableFrom(type)) {
return (Component) context.getInjector().newInstance(type);
} else {
throw new IllegalArgumentException("Type is not a Component implementation. Found: " + type.getName());
}
但它顯然是一個組件,它也是正確的版本。
我該做什麼錯?是否它可能採用與加載類NettyHttpComponent
類不同的類加載器來獲取Component
類?
Jetty和netty-http由於缺席而顯眼。這是有道理的,因爲wildfly是一個http服務器!所以在它內部運行一個碼頭組件是沒有意義的。 – mdarwin