2015-07-21 57 views
0

我有三個應用程序應該與bandwitch限制超過100,000用戶進行通信。WSO2ESB Rest API與WSO2MB

我們決定使用WSO2MB和WSO2ESB在應用程序之間發佈消息。

問題是,target.endpoint沒有得到消息,我不知道爲什麼。

<api xmlns="http://ws.apache.org/ns/synapse" name="School" context="/schools"> 
    <resource methods="POST" url-mapping="/" faultSequence="fault"> 
     <inSequence> 
     <log level="custom"> 
      <property name="Message Flow" value="--- Schools POST ---"></property> 
     </log> 
     <property name="REST_URL_POSTFIX" scope="axis2" action="remove"></property> 
     <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"></property> 
     <property name="OUT_ONLY" value="true"></property> 
     <property name="target.endpoint" value="Test.Endpoint"></property> 
     <log level="custom"> 
      <property name="Message Flow" value="--- Schools POST ---"></property> 
     </log> 
     <store messageStore="JMSMS"></store> 
     <log level="full"></log> 
     </inSequence> 
    </resource> 
</api> 

MessageStore

<messageStore name="JMSMS" class="org.apache.synapse.message.store.impl.jms.JmsStore" xmlns="http://ws.apache.org/ns/synapse"> 
    <parameter name="java.naming.factory.initial">org.wso2.andes.jndi.PropertiesFileInitialContextFactory</parameter> 
    <parameter name="java.naming.provider.url">repository/conf/jndi.properties</parameter> 
    <parameter name="store.jms.destination">JMSMS</parameter> 
    <parameter name="store.jms.connection.factory">QueueConnectionFactory</parameter> 
    <parameter name="store.jms.username">admin</parameter> 
    <parameter name="store.jms.password">admin</parameter> 
    <parameter name="store.jms.JMSSpecVersion">1.1</parameter> 
</messageStore> 

消息處理器

<messageProcessor name="JMSMS" class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor" targetEndpoint="Test.Endpoint" messageStore="JMSMS" xmlns="http://ws.apache.org/ns/synapse"> 
    <parameter name="interval">1000</parameter> 
    <parameter name="client.retry.interval">1000</parameter> 
    <parameter name="is.active">true</parameter> 
</messageProcessor> 

Jndi.properties

connectionfactory.QueueConnectionFactory = amqp://admin:[email protected]/carbon?brokerlist='tcp://localhost:5673' 
connectionfactory.TopicConnectionFactory = amqp://admin:[email protected]/carbon?brokerlist='tcp://localhost:5673' 

queue.JMSMS=JMSMS 

編輯:
Test.Endpoint

<?xml version="1.0" encoding="UTF-8"?> 
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="Test.Endpoint"> 
    <http method="post" uri-template="http://10.0.2.2:8000/super/test"/> 
</endpoint> 

回答

0

您已經定義了以下屬性。但是你沒有在你的突觸中定義端點。

<property name="target.endpoint" value="Test.Endpoint"></property> 

如果您已將該值定義爲Test.Endpoint,則應該定義一個端點。

例如,

<endpoint name="Test.Endpoint"> 
     <address uri="http://127.0.0.1:9000/services/SimpleStockQuoteService"/> 
    </endpoint> 

請檢查我們的示例文檔:<?XML版本= 「1.0」 編碼= 「UTF-8」>https://docs.wso2.com/display/ESB481/Sample+702%3A+Introduction+to+Message+Forwarding+Processor

+0

我有一個端點Test.Endpoint <端點xmlns =「http://ws.apache.org/ns/synapse」name =「Test.Endpoint」> Kacpers