2013-05-09 69 views
1

我們剛剛安裝了WSO2 ESB,我們正在嘗試使用海關端點來創建一些代理服務。定製Uri或WSO2端點

默認endoint格式爲:

  • 的http://(東道國):(港口)/服務/ {代理服務名稱}

我想有這樣的:

  • 的http://(東道國):(港口)/服務/公共事業/ {代理服務名稱}
  • 的http://(東道國):(港口)/服務/公共/ {代理服務名稱}

我跟着這個教程:

,但是我們有一個問題,當我將請求發送到我的自定義端點,我沒有答案。

意見建議?

回答

1

我假設您能夠正確創建自定義終結點,「我沒有答案」意味着您沒有得到任何迴應。如果是下面的情況是,該可能的原因,

  1. 代理服務端點沒有收到請求
  2. 代理服務沒有正確配置爲響應返回

所以測試是否1是你可以簡單地把日誌調解員在inSequence中以下配置的原因,

<日誌級別=「滿」/>

然後如果代理服務收到一條消息,它會將它記錄在控制檯中。如果這樣做可以請你發佈你的代理服務配置來檢查它是否被正確定義。

+0

感謝Malith,它似​​乎是第一個選項,代理服務端點沒有收到請求...我是否必須應用任何新配置? – culebrins 2013-05-10 09:49:30

+0

您是否嘗試通過ESB Web控制檯「嘗試此服務」選項發送請求,如果不遵循以下步驟並檢查它是否有效,請轉至ESB Web控制檯>選擇左側「服務」菜單下的「列表」 >從該列表中找到您的自定義代理與自定義網址>選擇「嘗試此服務」選項併發送消息(只需將身體) – Malith 2013-05-12 02:48:16

+0

沒有運氣。 在axis2.xml上應用該教程的所有配置後,我可以使用自定義URL配置我的一個代理服務。我已經配置它添加「參數」 - >「/ CustomURL/Part1/Part2」。 如果我「嘗試服務」,響應是「org.apache.axis2.AxisFault:傳入消息的輸入流爲空。」如果我在同一頁面上單擊「使用endpoind」,則可以看到WS的端點是我的自定義url。 我也檢查過我無法看到自定義URL上的WSDL,但是我可以看到默認WSDL上的WSDL ... – culebrins 2013-05-14 06:31:24

0

好吧,看來我們已經找到了解決方案,我要恢復完整的解決方案。

隨着教程表明,到costumize代理服務端點,您必須添加以下處理程序上的axis2.xml配置:

<handler name="CustomURIBasedDispatcher" class="org.apache.synapse.core.axis2.CustomURIBasedDispatcher"/> 

然後,您可以自定義在設計視圖中的端點或源視圖,我選擇源視圖,添加此參數:

<parameter name="ServiceURI">/services/intern</parameter> 

自定義端點自動生成爲:

http://{host}:{port}/services/intern.myWebservice 

但我沒有爲我工作。如果我向自定義端點發送請求,我沒有任何迴應。

我已經解決了這個問題,增加了「ServiceURI」參數中的服務的名稱:

<parameter name="ServiceURI">/services/intern/myWebService</parameter> 

,那麼你必須將請求發送到以下端點:

http://{host}:{port}/services/intern/myWebService 

所以現在你有一個每個代理服務的自定義端點。

感謝Malith的幫助。

+0

我嘗試了您的解決方案,但仍然收到空白頁。我不明白「自定義端點自動生成爲...」。我如何檢查它?我的問題解釋在http://stackoverflow.com/questions/19437894/custom-uri-not-working-on-wso2-esb-4-7-0。謝謝! – 2013-10-18 15:54:09

+0

嗨,幾年後;我有一個CustomURI的問題http://stackoverflow.com/questions/32097411/wso2-esb-custom-url – Marc 2015-08-19 14:10:39