wildfly 9.0.2.Finalで実行中のapache camelを取得しようとしています。Wildflyはラクダでうまく再生できません:IllegalArgumentException:型がコンポーネントの実装ではありません
ガイドhereを使用して、私はワイルドフライバンドルWildFly-Camel 3.3.0をダウンロードし、wildflyのインスタンスにパッチを当てました。
from("netty-http:http://localhost:8459/broker/router.jsp").convertBodyTo(String.class)
だから私は自分のプロジェクトにラクダネッティー-HTTPバージョン2.16.2を追加しました:
私のルート設定は、次のように、網状-HTTPを使用しています。私は起動時に
は、しかし、私は次のスタックトレースを取得:
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