加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

mule & seda的学习一

发布时间:2020-12-17 02:00:25 所属栏目:安全 来源:网络整理
导读:mule:轻量级的ESB消息框架,可以和spring集成,支持seda架构。 seda:分段式事件驱动架构,可以在每个stage上施加不同的thread,来确保程序的最大吞吐量。 几个名词解释 Connectiors:支持不同协议的连接器,屏蔽有不同协议带来的复杂度 EndPoints Address

mule:轻量级的ESB消息框架,可以和spring集成,支持seda架构。

seda:分段式事件驱动架构,可以在每个stage上施加不同的thread,来确保程序的最大吞吐量。

几个名词解释

Connectiors:支持不同协议的连接器,屏蔽有不同协议带来的复杂度

EndPoints Address:终端地址,类似于jms等消息机制

UMO:统一消息对象,在mule里面他们是一些POJO,负责解释消息,处理消息,然后再发送给下一个UMO,形成一个UMO处理链。

mule框架地址http://www.mulesoft.org/

下载下来并解压缩打开examples文件夹,里面有很多例子,最初级的例子是echo

D:/mule/mule-standalone-2.2.1/examples

1.运行echo项目,初次体验mule

执行echo.bat批处理文件,有三种选择,你可以在命令窗口下输入1,2或者3选择不同的模式1是基本模式,2是Axis模式,3是CXF模式

对应着D:/mule/mule-standalone-2.2.1/examples/echo/conf文件夹下的三个配置文件,根据你的选择加装不同的配置文件

2.自己动手写一个echo程序,代码如下

EchoService接口

package com.zxgllhh.testMule;

public interface EchoService {

??? public String echo(String echo);
}

EchoComponent实现类

package com.zxgllhh.testMule.impl;

import com.zxgllhh.testMule.EchoService;

public class EchoComponent implements EchoService {

??? public String echo(String echo) {
??? ??? System.out.println("Echo Component start....");
??? ??? return echo;
??? }

}

加装配置文件的主动类

package com.zxgllhh.run;

import org.mule.api.MuleContext;
import org.mule.api.context.MuleContextFactory;
import org.mule.config.spring.SpringXmlConfigurationBuilder;
import org.mule.context.DefaultMuleContextFactory;

public class EagleMuleMain {
??? public static void main(String[] args) throws Exception{
??? ??? try {
??? ??? ??? String configFile = "com/zxgllhh/run/mule-config.xml";
??? ??? ??? String[] configFileArr = new String[] { configFile };
??? ??? ??? MuleContextFactory muleContextFactory = new DefaultMuleContextFactory();
??? ??? ??? MuleContext context = muleContextFactory
??? ??? ??? ??? ??? .createMuleContext(new SpringXmlConfigurationBuilder(
??? ??? ??? ??? ??? ??? ??? configFileArr));
??? ??? ??? context.start();
??? ??? } catch (Exception t) {
??? ??? ??? t.printStackTrace();
??? ??? }
??? }
}

mule-config.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
?????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?????? xmlns:spring="http://www.springframework.org/schema/beans"
?????? xmlns:soap="http://www.mulesource.org/schema/mule/soap/2.2"
?????? xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.2"
?????? xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
?????? xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
??? xsi:schemaLocation="
?????? http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
?????? http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
?????? http://www.mulesource.org/schema/mule/soap/2.2 http://www.mulesource.org/schema/mule/soap/2.2/mule-soap.xsd
?????? http://www.mulesource.org/schema/mule/cxf/2.2 http://www.mulesource.org/schema/mule/cxf/2.2/mule-cxf.xsd
?????? http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
?????? http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd">
??? <description>
??? ??? this is a description,to be expert or not to be is not a question.
??? </description>
???
??? <model name="firstMuleModel">
??? ??? <service name="firstModelService">

??????????? <inbound>
??????????????? <stdio:inbound-endpoint system="IN"/>
??????????????? <vm:inbound-endpoint path="echo"/>
??????????? </inbound>

??? ??? ??? <component class="com.zxgllhh.testMule.impl.EchoComponent"></component>
??? ??? ???
??????????? <outbound>
??????????????? <pass-through-router>
??????????????????? <stdio:outbound-endpoint system="OUT"/>
??????????????? </pass-through-router>
??????????? </outbound>
???????????
??? ??? </service>
??? </model>
</mule>

发布成webservice应用,有webservice驱动程序运行代码修改如下

接口

package com.zxgllhh.testMule;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

@WebService
public interface EchoService {
??? //定义返回参数节点
??? @WebResult(name="responseResultByzxg")
??? //定义请求参数节点
??? public String echo(@WebParam(name="requestResultByzxg") String string);
}

实现类

package com.zxgllhh.testMule.impl;

import com.zxgllhh.testMule.EchoService;

public class EchoComponent implements EchoService {

??? public String echo(String echo) {
??? ??? return "Hello,"+echo;
??? }

}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
?????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?????? xmlns:spring="http://www.springframework.org/schema/beans"
?????? xmlns:soap="http://www.mulesource.org/schema/mule/soap/2.2"
?????? xmlns:cxf="http://www.mulesource.org/schema/mule/cxf/2.2"
?????? xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
?????? xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
??? xsi:schemaLocation="
?????? http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
?????? http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
?????? http://www.mulesource.org/schema/mule/soap/2.2 http://www.mulesource.org/schema/mule/soap/2.2/mule-soap.xsd
?????? http://www.mulesource.org/schema/mule/cxf/2.2 http://www.mulesource.org/schema/mule/cxf/2.2/mule-cxf.xsd
?????? http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
?????? http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd">
???
??? <description>
??? ??? this is a description,to be expert or not to be is not a question.
??? ???
??????? To invoke the EchoUMO hit the following URL -
??????????? http://localhost:65082/services/EchoServiceUMO/echo/requestResultByzxg/zxg
???????
??????? To view the WSDL for the EchoUMO service go to -
??????????? http://localhost:65082/services/EchoServiceUMO?wsdl
??? </description>

??? <!-- CXF下的mule配置 -->
??? <model name="echoSample">
??????? <service name="EchoService">
??????????? <inbound>
??????????????? <cxf:inbound-endpoint address="http://localhost:65082/services/EchoServiceUMO"
????????????????????????????????????? serviceClass="com.zxgllhh.testMule.EchoService"/>
??????????? </inbound>
??????????? <component class="com.zxgllhh.testMule.impl.EchoComponent"></component>
??????? </service>
??? </model>
???
??? <!--
??? <model name="firstMuleModel">
??? ??? <service name="firstModelService">
??????????? <inbound>
??????????????? <stdio:inbound-endpoint system="IN"/>
??????????????? <vm:inbound-endpoint path="echo"/>
??????????? </inbound>
??? ??? ??? <component class="com.zxgllhh.testMule.impl.EchoComponent"></component>
??????????? <outbound>
??????????????? <pass-through-router>
??????????????????? <stdio:outbound-endpoint system="OUT"/>
??????????????? </pass-through-router>
??????????? </outbound>
??? ??? </service>
??? </model>
??? ?-->
</mule>

对配置文件的总结

mule--description

??????? --model--service--inbound

???????????????????????????????? --outbound

???????????????????????????????? --component

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读