ExtVar support in JBI
---------------------

                 Key: ODE-501
                 URL: https://issues.apache.org/jira/browse/ODE-501
             Project: ODE
          Issue Type: Bug
    Affects Versions: 1.3
         Environment: ServiceMix 3.3
            Reporter: Rafal Rusin


I tried to run ExtVar test case in ServiceMix. I got error:

21:21:42,756 | ERROR | Timer-3    | ExternalVariableManager  | 
extvar.ExternalVariableManager   79 | External variable engine 
"{http://ode.apache.org/externalVariables/jdbc}jdbc"; referenced by external 
variable "costPerCustomer" not registered.
21:21:42,757 | ERROR | Timer-3    | ExternalVariableManager  | 
extvar.ExternalVariableManager  109 | The "__PROCESS_SCOPE:ExtVar2" scope 
declared an unknown external variable "costPerCustomer"; check the deployment 
descriptor.
21:21:42,757 | ERROR | Timer-3    | ExternalVariableManager  | 
extvar.ExternalVariableManager  120 | Error initializing external variables. 
See log for details.
21:21:42,758 | ERROR | Timer-3    | NStateLatch              | 
he.ode.bpel.engine.NStateLatch  110 | Latch error, was releasing for state 1 
but actually in -1
21:21:42,758 | ERROR | Timer-3    | OdeServiceUnit           | 
.apache.ode.jbi.OdeServiceUnit  108 | Unable to load 
{http://ode/bpel/unit-test}ExtVar2-1
org.apache.ode.bpel.iapi.BpelEngineException: Error initializing external 
variables. See log for details.
        at 
org.apache.ode.bpel.engine.extvar.ExternalVariableManager.<init>(ExternalVariableManager.java:121)
        at 
org.apache.ode.bpel.engine.BpelProcess.initExternalVariables(BpelProcess.java:146)
        at 
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch.doHydrate(BpelProcess.java:828)
        at 
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch.access$100(BpelProcess.java:786)
        at 
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch$2.run(BpelProcess.java:796)
        at org.apache.ode.bpel.engine.NStateLatch.latch(NStateLatch.java:89)
        at org.apache.ode.bpel.engine.BpelProcess.hydrate(BpelProcess.java:661)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:285)
        at org.apache.ode.jbi.OdeServiceUnit.start(OdeServiceUnit.java:104)
        at org.apache.ode.jbi.OdeSUManager.start(OdeSUManager.java:115)
        at 
org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(ServiceUnitLifeCycle.java:103)
        at 
org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(ServiceAssemblyLifeCycle.java:132)
        at 
org.apache.servicemix.jbi.framework.DeploymentService.start(DeploymentService.java:378)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:355)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:256)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:667)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:631)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
21:21:42,769 | ERROR | Timer-3    | OdeSUManager             | 
rg.apache.ode.jbi.OdeSUManager  118 | Error starting service unit 
"hello-ode-su".
org.apache.ode.bpel.iapi.BpelEngineException: Error initializing external 
variables. See log for details.
        at 
org.apache.ode.bpel.engine.extvar.ExternalVariableManager.<init>(ExternalVariableManager.java:121)
        at 
org.apache.ode.bpel.engine.BpelProcess.initExternalVariables(BpelProcess.java:146)
        at 
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch.doHydrate(BpelProcess.java:828)
        at 
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch.access$100(BpelProcess.java:786)
        at 
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch$2.run(BpelProcess.java:796)
        at org.apache.ode.bpel.engine.NStateLatch.latch(NStateLatch.java:89)
        at org.apache.ode.bpel.engine.BpelProcess.hydrate(BpelProcess.java:661)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:285)
        at org.apache.ode.jbi.OdeServiceUnit.start(OdeServiceUnit.java:104)
        at org.apache.ode.jbi.OdeSUManager.start(OdeSUManager.java:115)
        at 
org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(ServiceUnitLifeCycle.java:103)
        at 
org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(ServiceAssemblyLifeCycle.java:132)
        at 
org.apache.servicemix.jbi.framework.DeploymentService.start(DeploymentService.java:378)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:355)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:256)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:667)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:631)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
21:21:42,776 | WARN  | Timer-3    | ServiceAssemblyLifeCycle | 
ework.ServiceAssemblyLifeCycle  407 | Could not parse result exception
org.xml.sax.SAXParseException: Content is not allowed in prolog.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at 
org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.parse(ServiceAssemblyLifeCycle.java:423)
        at 
org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.getComponentFailure(ServiceAssemblyLifeCycle.java:404)
        at 
org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(ServiceAssemblyLifeCycle.java:134)
        at 
org.apache.servicemix.jbi.framework.DeploymentService.start(DeploymentService.java:378)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:355)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:256)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:667)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:62)
        at 
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:631)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
21:21:42,782 | INFO  | Timer-3    | DeploymentService        | 
bi.framework.DeploymentService  380 | Error in start



I figured out that JdbcExternalVariableModule was not added on init. 

I did a patch for ode1x branch, which resolved this problem. 

I'm also attaching example Service Assembly.. 


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to