2016-11-09 37 views
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類?

回答

相關問題