Как назначить значение ответа invoke выходной переменной процесса bpel в wso2 - PullRequest
1 голос
/ 30 марта 2012

Я пытаюсь вставить переменную bpel LVSProxyPLResponse в выходную переменную процесса bpel, используя действие assign, как показано в коде

     <bpel:copy>
         <bpel:from>
    <bpel:literal xml:space="preserve"><tns:LVMathProxyResponse xmlns:tns="http://lvmathproxy.bpel.bps" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tns:Mathresult></tns:Mathresult>
</tns:LVMathProxyResponse>
 </bpel:literal>
            </bpel:from>
            <bpel:to variable="output" part="payload"></bpel:to>
        </bpel:copy>
        <bpel:copy>
            <bpel:from part="payload" variable="LVSProxyPLResponse">
                <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
                    <![CDATA[result]]>
                </bpel:query>
            </bpel:from>
            <bpel:to part="payload" variable="output">
                <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
                    <![CDATA[tns:Mathresult]]>
                </bpel:query>
            </bpel:to>
        </bpel:copy>            
    </bpel:assign>

Веб-служба REST-прокси наESB вызывается через действие invoke в моем процессе bpel, и я могу убедиться, что при чтении выходной переменной LVSProxyPLResponse на BPS.

Выходная переменная имеет элемент сложного типа, как показано в коде ниже

<element name="LVMathProxyResponse"> <complexType> <sequence> <element name="Mathresult" type="tns:LVMathType"></element> </sequence> </complexType> </element>

По какой-то причине я не могу передать значение в выходную переменную, поскольку получаю следующую ошибку.

[2012-03-29 20:27:39,380]  INFO - AxisService - The system is attempting to engage a module that is already engaged: ServerAdminModule
[2012-03-29 20:27:39,511] ERROR - BpelEngineImpl - Scheduled job failed; jobDetail=JobDetails( instanceId: null mexId: hqejbhcnphr75sbpnvnci6 processId: {http://lvmathproxy.bpel.bps}LVMathProxy-58 type: INVOKE_INTERNAL channel: null correlatorId: null correlationKeySet: null retryCount: null inMem: false detailsExt: {enqueue=false})
java.lang.IllegalArgumentException: null parent
      at org.apache.ode.utils.DOMUtils.findChildByName(DOMUtils.java:776)
      at org.apache.ode.utils.DOMUtils.findChildByName(DOMUtils.java:771)
      at org.apache.ode.bpel.runtime.ASSIGN.evalQuery(ASSIGN.java:658)
      at org.apache.ode.bpel.runtime.ASSIGN.evalRValue(ASSIGN.java:207)
      at org.apache.ode.bpel.runtime.ASSIGN.copy(ASSIGN.java:386)
      at org.apache.ode.bpel.runtime.ASSIGN.run(ASSIGN.java:89)
      at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
      at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
      at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:879)
      at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:205)
      at org.apache.ode.bpel.engine.BpelProcess$1.invoke(BpelProcess.java:309)
      at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:250)
      at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:305)
      at org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:458)
      at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:553)
      at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:445)
      at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:537)
      at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:531)
      at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:284)
      at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
      at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:531)
      at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:515)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)

Что я пропускаю или делаю неправильно?

Я также получаю следующую ошибку

  2012-03-30 20:21:09,062] ERROR - BPELProcessProxy - Timeout or execution error     when  waiting for response to MEX {MyRoleMex#hqejbhcnphr75w46k8n8wm [Client hqejbhcnphr75w46k8n8wl] calling {http://lvmathprocess.bpel.bps}LVMService.process(...)} java.util.concurrent.TimeoutException: Message exchange        org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@1d1339b timed out(120000 ms) when waiting for a response!
   java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@1d1339b timed out(120000 ms) when waiting for a response!    at org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:250)

Я не вижу ни одного экземпляра процесса при запускена BPS версии 2.1.0.Но я вижу экземпляр в версии 2.1.2 и могу просматривать соответствующие переменные, но все равно получаю вышеуказанные ошибки при использовании попробуйте этот сервис.

1 Ответ

0 голосов
/ 09 мая 2012

Просто любопытно - ваш выходной контент - XSD?Должен быть в формате XML, если я прав.

...