Apache-ODE流程管理 [英] Apache-ODE ProcessManagement
问题描述
我可以通过
访问此API/WS
http://localhost:8080/ode/processes/ProcessManagement?wsdl
.
I can access this API/WS through
http://localhost:8080/ode/processes/ProcessManagement?wsdl
.
-
我想通过此服务获取流程的流程信息并将其激活.
服务具有匹配操作getProcessInfo
并激活.
使用listAllProcesses
,我得到了delpoyed程序包的所有进程.
对于getProcessInfo/activate
,我需要进程pid
.
我得到一个<ns:pid>
,使用它会给我带来很多异常.
使用进程的名称以及我之前收到的其他内容也不起作用.
pid
的类型为QName
,也许这就是问题的根源.
但是,我现在不在这里打字.
(使用Eclipse Web Services Explorer和soapUI进行了全部尝试)
I would like to get the Process Info of a Process through this service and active it.
The serivce has the matching operationsgetProcessInfo
and activate.
WithlistAllProcesses
I get all Processes of a delpoyed package.
ForgetProcessInfo/activate
I need the Processpid
.
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.
Thepid
is of typeQName
, 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屋!