在WSO2 EBS到WSO2 Appserver之间建立流程

时间:2013-06-19 06:47:32

标签: wso2

我在同一台机器上成功安装了WSO2 EBS和WSO2应用服务器,并解决了端口冲突问题。我在wso2门户中提到的app server中安装了后端服务。我的问题是如何在ebs序列选项中创建一个ebs到appserver之间的序列,用于ebs之间的消息流 - appserver - ebs。

注意:请参阅 http://wso2.com/library/articles/2011/01/wso2-esb-by-example-service-chaining

如果无法满足上述条件,请告知如何在上述网址中提到的ebs到app服务器之间建立消息流。

请您尽快发送有关此问题的任何文档,视频和屏幕截图。

谢谢。

3 个答案:

答案 0 :(得分:0)

在此服务链方案中(在您提到的链接中)会发生的情况是服务托管在Application Server(AS)中。然后,此服务的托管URL被定义为ESB中的端点。因此,当ESB中的代理服务收到请求时,将对该消息执行中介,然后将其发送到在发送介体中定义的端点。从该端点收到的响应然后通过ESB发送给消费者。

如果您正在研究如何实施服务链方案,本文档将提供更详细的信息。

http://wso2.com/library/articles/2012/11/enterprise-service-integration-wso2-esb

希望这会有所帮助.....

答案 1 :(得分:0)

在此示例中,我有一个代理服务,它接收来自客户端的传入消息。 有了这个传入消息,我从中提取了我需要的信息,在这种情况下,使用属性介体的偏移量和限制,如下所示:

  <property xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" name="offset" expression="//p:listarPersonas/p:offset"/>

我在这个序列中使用了log mediator,因为我需要查看存储在属性中的值来调试内容。

之后我使用payloadFactory创建一条新消息,因为我需要使用该格式将此消息发送到Application Server。

   <payloadFactory>
      <format>
         <p:listar_persona_paginado xmlns:p="http://ws.wso2.org/dataservice">            
            <p:offset>$1</p:offset>            
            <p:limit>$2</p:limit>         
         </p:listar_persona_paginado>
      </format>
      <args>
         <arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:offset"/>
         <arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:limit"/>
      </args>
   </payloadFactory>

然后,我使用send mediator将创建的消息发送到Application Server中的端点:

   <send>
      <endpoint>
         <address uri="http://127.0.0.1:9765/services/buscarPersona"/>
      </endpoint>
   </send>

所有部分在一起:

<sequence xmlns="http://ws.apache.org/ns/synapse">
   <log>
      <property name="SECUENCIA" value="ENTRADA DEL LISTADO DE PERSONAS"/>
      <property xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" name="offset" expression="//p:listarPersonas/p:offset"/>
      <property xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" name="limit" expression="//p:listarPersonas/p:limit"/>
   </log>
   <payloadFactory>
      <format>
         <p:listar_persona_paginado xmlns:p="http://ws.wso2.org/dataservice">            
            <p:offset>$1</p:offset>            
            <p:limit>$2</p:limit>         
         </p:listar_persona_paginado>
      </format>
      <args>
         <arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:offset"/>
         <arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://ejemplos.cuba.cu/Persona" expression="//p:listarPersonas/p:limit"/>
      </args>
   </payloadFactory>
   <send>
      <endpoint>
         <address uri="http://127.0.0.1:9765/services/buscarPersona"/>
      </endpoint>
   </send>
</sequence>

答案 2 :(得分:0)

您可以根据需要在ESB中定义自己的序列。但是当您从客户端访问这些序列时,您需要在ESB中实现代理服务。该代理服务允许您在该代理服务中调用任意数量的序列。在您的情况下,您需要访问位于WSO2应用程序服务器中的后端服务。您可以从中介访问这些服务。有关示例列表,请参阅以下链接

http://docs.wso2.org/wiki/display/ESB460/Proxy+Service+Samples