2016-07-03 67 views
0

我有一個問題,我不知道如何解決它。我在WSB2 ESB 4.9.0上。創建代理服務,發佈/觸發主題事件並傳遞數據

我想通過使用事件的代理來調用主題。但是,這永遠不會調用訂閱它的代理。

<?xml version="1.0" encoding="UTF-8"?> 
<proxy name="publishSubscribeTest" startOnLoad="true" trace="disable" 
    transports="http https" xmlns="http://ws.apache.org/ns/synapse"> 
    <target> 
    <inSequence> 
     <log level="custom"> 
     <property value="********************* START METHOD *********************" name="publishSubscribeTest"/> 
     </log> 

     <event topic="TestTopic"/> 

     <log level="custom"> 
     <property value="********************* END METHOD *********************" name="publishSubscribeTest"/> 
     </log> 
    </inSequence> 
    <outSequence> 
     <drop/> 
    </outSequence> 
    <faultSequence/> 
    </target> 
</proxy> 

主題的詳細信息如下:

Topic Name: TestTopic 
Permissions Details: (Everyone has permission to subscribe and publish) 
WS Subscription Details: Another custom proxy in WSO2 has been configured as WS Subscription Details. 

所以,當第一個代理調用的話題,它應該調用訂閱該主題的代理。但它從來沒有被調用過。

這是按主題叫代理:

<?xml version="1.0" encoding="UTF-8"?> 
<proxy name="proxyCalledByTopic" startOnLoad="true" trace="disable" 
    transports="https http" xmlns="http://ws.apache.org/ns/synapse"> 
    <target> 
    <inSequence> 
     <log level="custom"> 
     <property value="********************* START METHOD *********************" name="proxyCalledByTopic"/> 
     </log> 
    </inSequence> 
    <outSequence> 
     <send/> 
    </outSequence> 
    <faultSequence/> 
    </target> 
</proxy> 

那麼日誌應該是這樣的:

publishSubscribeTest = *************** ****** END METHOD ********************* proxyCalledByTopic = ****************** *** START METHOD ********************* publishSubscribeTest = *********************開始方法*********************

然而,它是這樣的:

publishSubscribeTest = ********************* END METHOD ********** *********** publishSubscribeTest = ********************* START METHOD ************** *******

所以我明白,訂閱中的主題所調用的代理不會被調用。

有什麼建議嗎?任何幫助?

回答

0

經過一番嘗試之後,pub sub沒有觸發事件的問題是由於內容類型頭部需求沒有適當地從傳入請求填充到代理服務。設置POST api也可以達到同樣的效果。

一旦內容類型頭部填充了以下任一值,pub/sub事件就開始工作。

Content-Type: application/json 
Content-Type: application/xml 

樣品帖子: XML

POST /TriggerTopic HTTP/1.1 
Host: 10.224.234.34:8280 
Content-Type: application/xml 
Cache-Control: no-cache 
Postman-Token: f60c206c-a38e-ed2d-46a0-b051304247be 

<?xml version="1.0" encoding="UTF-8"?> 
<note> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Dont forget me this weekend from postman via API</body> 
</note> 

樣品後JSON

POST /TriggerTopic HTTP/1.1 
Host: 10.224.234.34:8280 
Content-Type: application/json 
Cache-Control: no-cache 
Postman-Token: 3453ddc5-a279-203a-fecf-38e81bd3ba8b 

{"value":"some value"} 
相關問題