2012-12-17 38 views
1

我可以通過
http://localhost:8080/ode/processes/ProcessManagement?wsdl訪問此API/WS。Apache-ODE ProcessManagement

  1. 我想通過此服務獲取進程的進程信息並激活它。
    服務有匹配的操作getProcessInfo並激活。
    listAllProcesses我得到一個delpoyed包的所有進程。
    對於getProcessInfo/activate我需要過程pid
    我得到一個<ns:pid>,使用這個讓我負載例外。
    使用過程的名稱和我以前收到的其他內容也不起作用。
    pid類型爲QName,也許這就是問題的根源。
    但是我現在不會如何在這裏進行類型轉換。
    (已嘗試過所有與Eclipse Web服務瀏覽器和的soapUI)

    問題:如何兩種操作的適當請求是什麼樣子?

  2. 當我嘗試通過eclipse使用axi2來使用webservice時,AnySimpleType類中有一個未聲明的變量local。我不喜歡這種方式使用這項服務。 但是因爲我已經在爲DeploymentService編寫客戶端,所以我想到了這種方法。

    問題:如何正確訪問ProcessManagement?

編輯:我與DeploymentServiceundeploy操作一個simular問題。
編輯2:我想出了DeploymentService undeploy的問題。
我必須得到Packagename作爲字符串。然後,從中創建了一個javax.xml.namespace.QName。然後我使用了undeploy操作的setPackageName

回答質疑數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>

+0

我仍然無法僞造getProcessInfo的有效請求,如果我嘗試讓eclipse和axis2發揮它的魔力,那就更糟了。根本不會生成任何代碼,並且出現以下錯誤:在WSDL的代碼生成期間發生異常:org.apache.axis2.AxisFault:org.apache.ws.commons.schema.XmlSchemaException:導入的模式被宣佈具有命名空間http://www.apache.org/ode/pmapi/types/2006/08/02/,但命名空間爲null – snippl

+0

在soapUI中,我執行以下步驟:listAllProcesses,它給我一個我的進程列表。我有 {http:// ode/bpel/unit-test} HelloWorld2-1現在我試圖用這個pid獲取getProcessInfo的進程信息。我只收到一個錯誤的負載。我的''有什麼問題? – snippl

+0

啊,請嘗試使用「真正的」QName而不是它的Java序列化。所以不是''' {ode/bpel/unit-test} HelloWorld2-1'''我認爲它應該讀取''' odetest :HelloWorld2-1''' – vanto

相關問題