我在同一台机器上成功安装了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服务器之间建立消息流。
请您尽快发送有关此问题的任何文档,视频和屏幕截图。
谢谢。
答案 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