Ich benutze Camel 2.16.2. Ich benutze Camel Restlet (Camel-Restlet Version 2.16.2) um meine Web Services zu definieren.Kamel Restlet funktioniert nicht im Glas
restConfiguration().component("restlet")
.dataFormatProperty("prettyPrint", "true")
.host(propertiesConfig.getString("localhost"))
.port("8568");
und definiert einen Web-Service:
rest("/")
.post("/myService")
.consumes("application/json")
.to("direct:myServiceRoute");
Ich verwende Maven-Montage-Plugin ein Glas mit allen Abhängigkeiten zu bauen. Es läuft reibungslos auf IDE (I intellij bin mit), aber wenn ich die Anwendung mit dem Glas am Start (von java -jar tun), erhalte ich die Ausnahme:
Exception in thread "main" org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: restlet://http://127.0.0.1:8568/myService?restletMethod=POST due to: Could not find a suitable setter for property: restletMethod as there isn't a setter method with same type: java.lang.String nor type conversion possible: No type converter available to convert from type: java.lang.String to the required type: org.restlet.data.Method with value POST
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:590)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:603)
at org.apache.camel.component.restlet.RestletComponent.createConsumer(RestletComponent.java:747)
at org.apache.camel.component.rest.RestEndpoint.createConsumer(RestEndpoint.java:309)
at org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:68)
at org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:98)
at org.apache.camel.impl.RouteService.warmUp(RouteService.java:158)
at org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3453)
at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3383)
at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3160)
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3016)
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2812)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2808)
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2831)
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2808)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2777)
at org.apache.camel.main.Main.doStart(Main.java:126)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:124)
Caused by: java.lang.IllegalArgumentException: Could not find a suitable setter for property: restletMethod as there isn't a setter method with same type: java.lang.String nor type conversion possible: No type converter available to convert from type: java.lang.String to the required type: org.restlet.data.Method with value POST
at org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:574)
at org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:602)
at org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:459)
at org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:469)
at org.apache.camel.util.EndpointHelper.setProperties(EndpointHelper.java:256)
EDIT:/org/apache/Kamel/component/Restlet/und seine Klassen (einschließlich RestletConverter sind in dem Gefäß
Siehe diese FAQ: http://camel.apache.org/how-doi-i-use-a-big-uber-jar.html –