Uploaded image for project: 'ODE'
  1. ODE
  2. ODE-501

ExtVar support in JBI

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.3.2
    • 1.3.3, 2.0
    • JBI Integration
    • None
    • ServiceMix 3.3

    Description

      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..

      Attachments

        1. extvar-sa.zip
          13 kB
          Rafal Rusin
        2. extvars-in-jbi.diff
          2 kB
          Rafal Rusin

        Activity

          People

            rrusin Rafal Rusin
            rrusin Rafal Rusin
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: