Apache-ODE流程管理 [英] Apache-ODE ProcessManagement

查看:149
本文介绍了Apache-ODE流程管理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以通过
访问此API/WS http://localhost:8080/ode/processes/ProcessManagement?wsdl.

I can access this API/WS through
http://localhost:8080/ode/processes/ProcessManagement?wsdl.

  1. 我想通过此服务获取流程的流程信息并将其激活.
    服务具有匹配操作getProcessInfo并激活.
    使用listAllProcesses,我得到了delpoyed程序包的所有进程.
    对于getProcessInfo/activate,我需要进程pid.
    我得到一个<ns:pid>,使用它会给我带来很多异常.
    使用进程的名称以及我之前收到的其他内容也不起作用.
    pid的类型为QName,也许这就是问题的根源.
    但是,我现在不在这里打字.
    (使用Eclipse Web Services Explorer和soapUI进行了全部尝试)

  1. I would like to get the Process Info of a Process through this service and active it.
    The serivce has the matching operations getProcessInfo and activate.
    With listAllProcesses I get all Processes of a delpoyed package.
    For getProcessInfo/activate I need the Process pid.
    I get a <ns:pid>, using this gets me a load of Exceptions.
    Using the name of the process and other stuff I receive earlier doesn't work either.
    The pid is of type QName, perhaps thats the root of the problem.
    However I don't now how to typecast here.
    (Tried all with the eclipse Web Services Explorer and soapUI)

问题:对两个操作"的正确请求看起来如何?

question: How does a proper request for both Operations look like?

当我尝试通过eclipse使用axi2使用Web服务时,AnySimpleType类中有一个未声明的变量local.我不希望以这种方式使用该服务. 但是,由于我已经在为DeploymentService编写客户端,所以我考虑了这种方法.

When I try to consume the webservice with axi2 via eclipse, there is a undeclared variable local in the AnySimpleType class. I'm not keen on using the service this way. But since I'm already writing a Client for the DeploymentService I thought about this approach.

问题:我如何正确访问ProcessManagement?

question: How do I properly access the ProcessManagement?

DeploymentService undeploy操作.
我发现了DeploymentService undeploy的问题.
我必须将Packagename命名为String.然后从中取出一个javax.xml.namespace.QName.然后,我使用了上述undeploy操作的setPackageName.

I have a simular problem with the DeploymentService and the undeploy Operation.
I figured the Problem with the DeploymentService undeploy out.
I had to get the Packagename as String. Then a made a javax.xml.namespace.QName out of it. Then I used the setPackageName of said undeploy operation.

回答:问题1: 具有listAllProcesses的soapUI返回
<ns:pid>{ode/bpel/unit-test}HelloWorld2-1</ns:pid>
getProcessInfo想要

Answer to question number 1: soapUI with listAllProcesses returns
<ns:pid>{ode/bpel/unit-test}HelloWorld2-1</ns:pid>
getProcessInfo wants

<pmap:getProcessInfo>
    <pid>?</pid>
</pmap:getProcessInfo>

现在我将<pid>?</pid>替换为
<pid xmlns:odetest="http://ode/bpel/unit-test">odetest:HelloWorld2-1</pid> 而且它就像一种魅力.

Now I replaced <pid>?</pid> with
<pid xmlns:odetest="http://ode/bpel/unit-test">odetest:HelloWorld2-1</pid> and it worked like a charm.

推荐答案

我记得使用Axis2生成的WSDL时参数排序存在问题.您能否尝试针对位于http://localhost:8080/ode/deployment/services/ProcessManagement的原始WSDL生成请求吗?

I remember that there was an issue with parameter ordering when using the Axis2 generated WSDL. Could you try if building a request against the original WSDL located at http://localhost:8080/ode/deployment/services/ProcessManagement works?

现在,我已经正确理解了这个问题,问题在于ODE希望QName以不同的方式序列化,即以XML方式而不是Java方式进行序列化.因此,正确的符号是<ns:pid xmlns:odetest="ode/bpel/unit-test">odetest:HelloWorld2-1</ns:pid>而不是<ns:pid>{ode/bpel/unit-test}HelloWorld2-1</ns:pid>.

Now that I got the question correctly, the problem is that ODE expects the QName to be serialized differently, i.e. in the XML way instead of the Java way. Thus, instead of <ns:pid>{ode/bpel/unit-test}HelloWorld2-1</ns:pid> the correct notation is <ns:pid xmlns:odetest="ode/bpel/unit-test">odetest:HelloWorld2-1</ns:pid>.

这篇关于Apache-ODE流程管理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆