问题
I can access this API/WS throughhttp://localhost:8080/ode/processes/ProcessManagement?wsdl
.
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?
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.question: How do I properly access the ProcessManagement?
EDIT: I have a simular problem with the DeploymentService and the undeploy
Operation.
EDIT2: 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.
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>
Now I replaced <pid>?</pid>
with<pid xmlns:odetest="http://ode/bpel/unit-test">odetest:HelloWorld2-1</pid>
and it worked like a charm.
回答1:
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?
EDIT: 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>
.
来源:https://stackoverflow.com/questions/13913753/apache-ode-processmanagement