Hi Etienne,

sorry for the delay, I was a bit ill the last days.
I will indeed have a closer look on your use case.
I never used Camel in OSGi except for one ver simple blueprint test, so it 
could take me some time.

Would you mind opening a Jira issue for that?
Then I can comment there and hopefully bring in a bit of analysis.

Thanks!
Julian

Am 14.02.20, 23:34 schrieb "Etienne Robinet" <[email protected]>:

    Hello everyone,
    I've spent some days trying to figure out how to make PLC4X work inside a 
karaf container in combination with camel blueprints for routing.
    I've downloaded the latest release (0.5.0) and built it with maven. I then 
installed the driver-s7-feature and plc4j-apache-camel bundle into my container 
and got following bundles running:
    
    >PLC4J: API
    >PLC4J: Driver: S7
    >PLC4J: Protocol: Driver-Base: Base
    >PLC4J: Protocol: Driver-Base: TCP
    >PLC4J: Protocol: ISO on TCP
    >PLC4J: Protocol: ISO TP
    >PLC4J: Protocol: S7
    >PLC4j: Utils: Driver Base: Java
    >PLC4J: Integrations: Apache Camel
    
    After trying a simple route with this consumer component:
    <from uri="plc4x:s7:localhost/1/1"/> (the address is for testing purpose)
    I get the following error: 
    Error occurred during starting CamelContext: PLC-Context
    org.apache.camel.FailedToCreateRouteException: Failed to create route 
Route1: Route(Route1)[[From[plc4x:s7:localhost/1/1]] -> [To[mock:tes... because 
of Unable to find driver for protocol 's7'
    
    I've tested numerous version of PLC4X and got the same results, so I think 
I might be close to fix it!
    Any help would be appreciated!
    
    Here the full log
    
    16:30:45.578 INFO [Blueprint Event Dispatcher: 1] Attempting to start 
CamelContext: PLC-Context
    16:30:45.579 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.24.2 
(CamelContext: PLC-Context) is starting
    16:30:45.580 INFO [Blueprint Event Dispatcher: 1] StreamCaching is enabled 
on CamelContext: PLC-Context
    16:30:45.580 INFO [Blueprint Event Dispatcher: 1] JMX is enabled
    16:30:45.600 INFO [Blueprint Event Dispatcher: 1] Instantiating new PLC 
Driver Manager with class loader BundleDelegatingClassLoader(plc4j-route.xml 
[67])
    16:30:45.600 INFO [Blueprint Event Dispatcher: 1] Registering available 
drivers...
    16:30:45.601 TRACE [Blueprint Event Dispatcher: 1] FindResource: 
META-INF/services/org.apache.plc4x.java.spi.PlcDriver
    16:30:45.627 INFO [Blueprint Event Dispatcher: 1] StreamCaching in use with 
spool directory: 
C:\karaf\bin\..\data\tmp\camel\camel-tmp-00f849ac-0ccf-4b12-822d-dda62267eb6c 
and rules: [Spool > 128K body size]
    16:30:45.629 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.24.2 
(CamelContext: PLC-Context) is shutting down
    16:30:45.639 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.24.2 
(CamelContext: PLC-Context) uptime 0.060 seconds
    16:30:45.640 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.24.2 
(CamelContext: PLC-Context) is shutdown in 0.011 seconds
    16:30:45.640 WARN [Blueprint Event Dispatcher: 1] Changing Camel state for 
bundle 67 to Failure
    16:30:45.641 ERROR [Blueprint Event Dispatcher: 1] Error occurred during 
starting CamelContext: PLC-Context
    org.apache.camel.FailedToCreateRouteException: Failed to create route 
Route1: Route(Route1)[[From[plc4x:s7:localhost/1/1]] -> [To[mock:tes... because 
of Unable to find driver for protocol 's7'
            at org.apache.camel.impl.RouteService.warmUp(RouteService.java:147) 
~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3954)
 ~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3861)
 ~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3647)
 ~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3488)
 ~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3247) 
~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3243) 
~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3266)
 ~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3243)
 ~[!/:2.24.2]
            at 
org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72) 
~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3159) 
~[!/:2.24.2]
            at 
org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:255)
 ~[!/:2.24.2]
            at 
org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:297)
 ~[!/:2.24.2]
            at 
org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:188)
 [!/:2.24.2]
            at 
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
 [!/:1.10.2]
            at 
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
 [!/:1.10.2]
            at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
            at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
            at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
            at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
            at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
            at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
 [?:?]
            at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
[?:?]
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
[?:?]
            at java.lang.Thread.run(Thread.java:834) [?:?]
    Caused by: org.apache.plc4x.java.api.exceptions.PlcConnectionException: 
Unable to find driver for protocol 's7'
            at 
org.apache.plc4x.java.PlcDriverManager.getDriver(PlcDriverManager.java:98) 
~[?:?]
            at 
org.apache.plc4x.java.PlcDriverManager.getConnection(PlcDriverManager.java:71) 
~[?:?]
            at 
org.apache.plc4x.camel.Plc4XConsumer.<init>(Plc4XConsumer.java:57) ~[?:?]
            at 
org.apache.plc4x.camel.Plc4XEndpoint.createConsumer(Plc4XEndpoint.java:72) 
~[?:?]
            at 
org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:69)
 ~[!/:2.24.2]
            at 
org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:107) 
~[!/:2.24.2]
            at 
org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:172) ~[!/:2.24.2]
            at org.apache.camel.impl.RouteService.warmUp(RouteService.java:145) 
~[!/:2.24.2]
            ... 24 more
    
    
    

Reply via email to