2016-11-09 4 views
0

wildfly 9.0.2.Final에서 아파치 낙타를 실행하려고합니다.Wildfly는 낙타와 잘 어울리지 않습니다 : IllegalArgumentException : 유형이 구성 요소 구현이 아닙니다.

가이드 here을 사용하여 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 클래스를 선택했을 가능성이 있습니까?

답변

0

wildfly-camel에서 netty-http 구성 요소를 지원하지 않습니다. 여기에 나열된 지원 구성 요소를 사용해야합니다. https://wildflyext.gitbooks.io/wildfly-camel/content/components/index.html

+0

부두 및 netty-http는 부재로 인해 두드러집니다. wildfly는 http 서버이므로 이해가됩니다! 따라서 내부에 부두 구성 요소가 실행되는 것은 의미가 없습니다. – mdarwin