Apache-ODE ProcessManagement

Я могу получить доступ к этому API/WS через
http://localhost:8080/ode/processes/ProcessManagement?wsdl,

  1. Я хотел бы получить информацию о процессе через этот сервис и активировать его.
    Служба имеет соответствующие операции getProcessInfo и активировать.
    С listAllProcesses Я получаю все процессы из пакета delpoyed.
    За getProcessInfo/activate Мне нужен процесс pid,
    Я получаю <ns:pid>Используя это, я получаю массу исключений.
    Использование имени процесса и других вещей, которые я получаю ранее, тоже не работает.
    pid имеет тип QName, возможно, в этом корень проблемы.
    Однако сейчас я не знаю, как это сделать.
    (Перепробовал все с помощью eclipse Web Services Explorer и soapUI)

    вопрос: как выглядит правильный запрос для обеих операций?

  2. Когда я пытаюсь использовать веб-сервис с помощью axi2 через eclipse, появляется необъявленная переменная local в классе AnySimpleType. Я не заинтересован в использовании сервиса таким образом. Но так как я уже пишу Клиент для DeploymentService, я подумал об этом подходе.

    вопрос: как правильно получить доступ к ProcessManagement?

РЕДАКТИРОВАТЬ: у меня есть проблема симуляции с DeploymentService и undeploy Операция.
РЕДАКТИРОВАТЬ 2: Я понял проблему с DeploymentService undeploy из.
Я должен был получить Packagename как String. Затем из него сделал javax.xml.namespace.QName. Тогда я использовал setPackageName из сказанного undeploy операция.

Ответ на вопрос № 1: soapUI с listAllProcesses возвращает
<ns:pid>{ode/bpel/unit-test}HelloWorld2-1</ns:pid>
getProcessInfo хочет

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

Теперь я заменил <pid>?</pid> с
<pid xmlns:odetest="http://ode/bpel/unit-test">odetest:HelloWorld2-1</pid>и это сработало как шарм.

1 ответ

Решение

Я помню, что была проблема с упорядочением параметров при использовании сгенерированного Axis2 WSDL. Не могли бы вы попытаться создать запрос к исходному WSDL, расположенному по адресу http://localhost:8080/ode/deployment/services/ProcessManagement работает?

РЕДАКТИРОВАТЬ: Теперь, когда я правильно понял вопрос, проблема в том, что ODE ожидает, что QName будет сериализовано по-другому, то есть способом XML вместо способа Java. Таким образом, вместо <ns:pid>{ode/bpel/unit-test}HelloWorld2-1</ns:pid> правильное обозначение <ns:pid xmlns:odetest="ode/bpel/unit-test">odetest:HelloWorld2-1</ns:pid>,

Другие вопросы по тегам