mulexmlconfiguration解析xmlbuilder在哪个包

Mule入门实例(转载)
三.Mule入门实例
准备:下载mule-1.4.3(),设置相应的JAVA_HOME,MULE_HOME等。下载Tomcat5.5,并设置相应TOMCAT_HOME.
下面仿照Mule自带的Echo(在目录MULE_HOME\examples\echo)示例写自己的第一个Mule例子。
建立如下service接口以及实现
接口:IHello.java
package mule.
public interface IHello {
&&&&&&&&&&
public String sayHello(String name);
实现:Hello.java
package mule.
public class Hello implements IHello {
&&&&&&&&&&&
public String sayHello(String name) {
&&&&&&&&&&&&&&&&&&&&&&&
return "hello " + name + ", welcom to Beijing 2008";
&&&&&&&&&&&
并建立如下配置文件mule-hello.xml
&?xml version="1.0"
encoding="UTF-8"?&
&!DOCTYPE mule-configuration PUBLIC "-//SymphonySoft
//DTD mule-configuration XML V1.0//EN" ""&
&mule-configuration id="muletest"
version="1.0"&
&&&&&&&&&&&
&mule-environment-properties
synchronous="true"
&&&&&&&&&&&&&&&&&&&&&&&
serverUrl="tcp://localhost:7003" /&
&&&&&&&&&&&
&model name="helloService"&
&&&&&&&&&&&&&&&&&&&&&&&
&mule-descriptor name="hello"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
implementation="mule.echo.Hello"&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&inbound-router&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
address="axis:http://localhost:8081/services"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&/inbound-router&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&properties&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&list name="serviceInterface"&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&entry value="mule.echo.Ihello"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&/properties&
&&&&&&&&&&&&&&&&&&&&&&&
&/mule-descriptor&
&&&&&&&&&&&
&/mule-configuration&
建立测试类:HelloTest.java
package mule.
import org.mule.config.builders.MuleXmlConfigurationBuil
import org.mule.umo.manager.UMOM
public class HelloTest {
&&&&&&&&&&&
public static void main(String[] args) throws Exception {
&&&&&&&&&&&&&&&&&&&&&&&
MuleXmlConfigurationBuilder builder = new
MuleXmlConfigurationBuilder();
&&&&&&&&&&&&&&&&&&&&&&&
UMOManager manager = builder.configure("mule-hello.xml");
&&&&&&&&&&&
启动Tomcat,然后执行HelloTest.java
在网址可以看到服务描述。
输入在网址测试服务。
在配置文件mule-hello.xml有两点需要说明:
1. &mule-environment-properties synchronous="true"
serverUrl="tcp://localhost:7003" /&表示测试使用的端口
2.&endpoint
address="axis:http://localhost:8081/services"
/&表示使用axis发布web服务
也可以在HelloTest.java中测试服务,修改后代码如下
………….&&&
UMOManager manager = builder.configure("mule-hello.xml");
MuleClient client = new MuleClient();
UMOMessage msg = client.send
&&&&&&&&&&&&&&&&&&&
("axis:http://localhost:8081/services/hello?method=sayHello","peng",
System.out.println(msg.getPayload());
..........
执行得到结果:
hello peng, welcom to Beijing 2008
如果将配置文件mule-hello.xml改成如下:
&?xml version="1.0"
encoding="UTF-8"?&
&!DOCTYPE mule-configuration PUBLIC "-//SymphonySoft
//DTD mule-configuration XML V1.0//EN" ""&
&mule-configuration id="muletest"
version="1.0"&
&&&&&&&&&&&
&mule-environment-properties
synchronous="true"
&&&&&&&&&&&&&&&&&&&&&&&
serverUrl="tcp://localhost:7003" /&
&&&&&&&&&&&
&model name="helloService"&
&&&&&&&&&&&&&&&&&&&&&&&
&mule-descriptor name="hello"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
implementation="mule.echo.Hello"&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&inbound-router&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&endpoint address="stream://System.in"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&/inbound-router&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&outbound-router&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
className=&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"org.mule.routing.outbound.FilteringOutboundRouter"&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&endpoint address="stream://System.out"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&/outbound-router&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&properties&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&list name="serviceInterface"&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&entry value="mule.echo.Ihello"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&/properties&
&&&&&&&&&&&&&&&&&&&&&&&
&/mule-descriptor&
&&&&&&&&&&&
&/mule-configuration&
执行程序HelloTest.java,在console输入字符串也可看到响应结果。
文章出处:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。1789人阅读
技术文档(9)
&功能: 将某个文件放入特定的目录里(本demo是放入e:/temp目录), 然后将该文件上传到FTP上, 并且发送电子邮件通知文件已经上传
-------------------------------------------------第一步----------------------------------------------------------------------首先写配制文件&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE mule-configuration PUBLIC &-//MuleSource //DTD mule-configuration XML V1.0//EN&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&
&mule-configuration id=&ftp-upload& version=&1.0&&
&&description&File upload via FTP&/description&
&&connector name=&myFileConnector& className=&org.mule.providers.file.FileConnector&&&&&properties&&&&&!-- property name=&moveToDirectory& value=&& /--&&&&&property name=&moveToPattern& value=&${SYSTIME}_${ORIGINALNAME}& /&&&&/properties&&&/connector&&&connector name=&EmailConnector& className=&org.mule.providers.email.SmtpConnector&&&&&properties&&&&&property name=&fromAddress& value=&& /&&&&&property name=&hostname& value=&localhost& /&&&&&property name=&username& value=&root& /&&&&&property name=&password& value=&root& /&&&&&property name=&subject& value=&file Received!& /&&&&/properties&&&/connector&&&connector name=&myFTPConnector& className=&org.mule.providers.ftp.FtpConnector&&&&&properties&&&&&property name=&pollingFrequency& value=&1000& /&&&&&property name=&filenameParser& value=&${SYSTIME}_${ORIGINALNAME}.txt& /&&&&/properties&&&/connector&
&&endpoint-identifiers&&&&endpoint-identifier name=&ServiceInbound& value=&& /&&&&endpoint-identifier name=&ToSmtpServer& value=&smtp://localhost?address=wuda@localhost& /&&&&endpoint-identifier name=&fileupload& value=&& /&&&/endpoint-identifiers&&&&& &transformers&&&&&&&& &transformer name=&sendMail& className=&transformer.SendMail&&&&&&&&&&&& returnClass=&java.lang.String&/&&&&&&&& &transformer name=&stringToEmailMessage& className=&org.mule.providers.email.transformers.StringToEmailMessage&&&&&&&& &returnClass=&javax.mail.Message&/&&&& &/transformers&&&&!--&&The Mule model initialises and manages your UMO components&--&&&model name=&file-smtp&&&&&mule-descriptor name=&SmtpNotification& implementation=&service.FtpUpload&&&&&&inbound-router&&&&&&endpoint address=&ServiceInbound& /&&&&&/inbound-router&&&&&outbound-router&&&&&&router className=&org.mule.routing.outbound.MulticastingRouter&&&&&&&&endpoint address=&~& &&&&&&&&properties&&&&&&&&&property name=&outputPattern& value=&${ORIGINALNAME}&/&&&&&&&&/properties&&&&&&&/endpoint&&&&&&&endpoint address=&ToSmtpServer& transformers=&sendMail stringToEmailMessage&/&&&&&&/router&&&&&/outbound-router&&&&/mule-descriptor&&&&&/model&&/mule-configuration&
这里需要对这段配制进行一些说明:&&&&outbound-router&&&&&&router className=&org.mule.routing.outbound.MulticastingRouter&&&&&&&&endpoint address=&~& &&&&&&&&properties&&&&&&&&&property name=&outputPattern& value=&${ORIGINALNAME}&/&&&&&&&&/properties&&&&&&&/endpoint&&&&&&&endpoint address=&ToSmtpServer& transformers=&sendMail stringToEmailMessage&/&&&&&&/router&&&&&/outbound-router&这里采用MulticastingRouter的方法,来实现发送到多个endpoint, 第一个是实现将文件写到FTP, 第二个是实现电子邮件的发送
-------------------------------------------------第二步----------------------------------------------------------------------service.FtpUpload文件
import java.util.HashMimport java.util.M
import org.mule.umo.UMOEventCimport org.mule.umo.UMOMimport org.mule.umo.lifecycle.C
public class FtpUpload implements Callable {
&public Object onCall(UMOEventContext eventContext) throws Exception {&&UMOMessage message = eventContext.getMessage();&&//获取文件名&&String fileName =message.getProperty(&originalFilename&).toString();&&byte[] buf = message.getAdapter().getPayloadAsBytes();&&&}}
这个类是对e:/temp目录的监听,一旦有文件到达该目录后,就会将这个文件以byte[]的形式放入UMOMessage里
-------------------------------------------------第三步----------------------------------------------------------------------transformer.SendMail文件
import org.mule.impl.RequestCimport org.mule.transformers.AbstractTimport org.mule.umo.UMOEventCimport org.mule.umo.UMOMimport org.mule.umo.transformer.TransformerE
public class SendMail extends AbstractTransformer {&&public SendMail(){&&super();//&&this.registerSourceType(byte.class);&}
&@Override&protected Object doTransform(Object src, String encoding)&&&throws TransformerException {
&&UMOEventContext eventContext= RequestContext.getEventContext();&&UMOMessage message = eventContext.getMessage();&&String fileName =message.getProperty(&originalFilename&).toString();&&&&return &you have received a email named &+fileN&}}
注意:1. 这个类并不是实现转换目的,而是实现构造电子邮件内容的功能2. 这个类返回的是String类型, 但是smtp要求被发送的邮件是javax.mail.Message, 所以还要进行一个转换--stringToEmailMessage它使用了mule本身的org.mule.providers.email.transformers.StringToEmailMessage类3. 这样写是不支持中文的,因为mule本身是用ISO-8859-1, 所以还得做相应的调整,这将会在以下的详解中提到
-------------------------------------------------第三步----------------------------------------------------------------------写一个main函数, 这个主要的作用是方便调试&public static void main(String[] args) throws Exception {&&String rootPath = System.getProperty(&user.dir&);&&String filePath = rootPath +&&;&&&&&&& MuleXmlConfigurationBuilder builder = new MuleXmlConfigurationBuilder();&&&&&&& builder.configure(filePath);&}下面就可以调试了.-------------------------------------------------完成--------------------------------------------------------------------------
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21135次
排名:千里之外
原创:14篇ESBMULE3.2.0性能测试mule;1.准备两台或者三台电脑,下面以三台电脑为例;2.一台机器安装jdk(我装的jdk1.6)用来;机器安装mule3.2.0并且在其上面跑Echo;Echo);MockServices;3.先运行带Echo实例的mule,然后启动部署;4.运行javabench模拟client向mu;结果;备注:;1.运行javabe
ESB MULE 3.2.0 性能测试
1.准备两台或者三台电脑,下面以三台电脑为例。
2. 一台机器安装jdk(我装的jdk1.6)用来跑请求发送端javabench。另一台
机器安装mule3.2.0并且在其上面跑Echo实例(并不是examples下面的那个
Echo)。第三台电脑安装tomcat(我装的tomcat6.0)用来跑Echo请求的服务
MockServices。
3. 先运行带Echo实例的mule,然后启动部署好MockServices的tomcat。
4.运行javabench模拟client向mule请求。如果不出错,可以看到运行的测试
1.运行javabench可以用java -jar命令。(我用测试的命令:java -jar
benchmark-0.1.jar -p 1K_buyCustomStocks.xml -n 20 -c 10 -k -H
&SOAPAction:urn:getQuote& -T &text/charset=UTF-8&
http://192.168.0.142:8090/services/CBRProxy)。
2.其中测试分三种方式:direct PContent Based RXSLT.
3.其中三种测试方式的介绍地址:
http://blogs.mulesoft.org/run-mule-run-faster/
4. 测试用代码下载地址:http://wso2.org/library/3740
原文是在mule的官网上,在这里,我做了一个简单的翻译,水平有限,有什么不足的地方,
请多多包涵~
在Tomcat中安装Mule
为了可以热部署你的Mule应用,将Mule安装在Tomcat下需要如下的几步:
1.从apache的主页下载并按照标准的配置安装Apache Tomcat6。
2.在tomcat的根目录下, 添加下面一行代码到conf/server.xml文件中:
&Listener className=&org.mule.module.tomcat.MuleTomcatListener& /&
3.复制Mule主目录下lib文件夹中的除去boot文件夹的所有子文件夹到Tomcat根目录的
mule-libs文件夹(如果没有的话就自己创建一个)。你不需要对目录做其他的修改。
4.从mule-libs/mule/目录复制mule-module-tomcat-.jar文件到你的Tomcat根目录(如果根目
录下没有的话)。
5.从Mule文件的lib/boot/目录下复制如下的jar文件到Tomcat下的 mule-libs/opt/ 目录中:
jcl104-over-slf4j-1.5.0.jar
log4j-1.2.14.jar
slf4j-api-1.5.0.jar
slf4j-log4j12-1.5.0.jar
6.在Tomcat下的 conf/catalina.properties文件中, 添加如下代码到 common.loader (与已有的
值用逗号分隔开来):
${catalina.home}/mule-libs/user/*.jar,${catalina.home}/mule-libs/mule/*.jar,${catalina.home}/m
ule-libs/opt/*.jar
复制Mule应用文件到Tomcat中
首先将你的配置文件和普通的Java classes文件打包成WAR格式文件(详情请见热部署Mule
文件),然后将它复制到Tomcat/webapps下即可。
热部署Mule应用
当你将你的Mule应用文件打包为WAR格式复制到Tomcat /webapps下后,Tomcat会自动
进行部署的。当你需要修改你的web应用中的配置或者或者是java文件时,只需要在Tomcat
/webapps目录下的解压文件中进行即可。然后通过对Tomcat下的web.xml进行改动(比如
说添加或者删除几个空格,然后保存),主要是为了触发Tomcat对应用的重新部署。另外,
你也可以在源文件中进行修改,然后将源文件打包为WAR格式的文件,将新的WAR格式
文件复制到Tomcat /webapps下,这样也可以触发Tomcat重新部署。
下面是我个人的观点:貌似Mule2.0.2的版本中没有mule-module-tomcat-&version&.jar这个
文件,在3.1.2的版本中自带有的,其他的版本在官网上有2.2.9,3.1.3和3.2.0的,其余的
就不知道了。
本篇文章来源于 Linux公社网站()
原文链接:
mule-esb中的file构建可以设置文件夹路经path,当mule启动后会自动地会对该path路径进
不知道各位有没有用过这个file构件,如果用过的话,有没有实现过通过程序自动更改pat
h路经,并且立即见效。因为我现在能想到的方法就是更改xml文件,然后重新启动mule
服务,这样更新一次path路径生效速度将很慢。不知道有哪位大侠对mule进行研究过,是
否知道mule里面提供没提供更改file构件中path路径中的方法。
上面的问题补充,将mule服务加载到Spring中的程序如下,mule-config.xml就是mule的
配置文件,mule的各项功能都配在里面。我想实现的功能其实就是更改mule-config.xml文
:由于mule服务装载到Spring的过程是这样的:先根据xml文件创建builder,然后再把Spring上下文context设为builder的父级上
后再根据builder来创建mule上下文,这样mule就启动并且自动装载到Spring中去了。
先修改mule-config.xml文件(JDom),修改xml文件之后必须重新创建一个builder,重新创建builder之后又得放到Spring上下文
为静态的了,先把muleContext Stop之后设为null,然后再创建一个新的 start。这样mule服务就实现了重新启动。
context要设为静态变量。builder重新创建之后就得重新创建一个muleContext,这里我是直接用了原来的muleContext,所以muleCo
private static MuleContext muleC
private static ApplicationC
* 停止mule上下文服务
* @throws MuleException
private static void stopMuleContext() throws MuleException {
if (muleContext != null) {
muleContext.stop();
muleContext =
* 启动mule上下文服务
* @throws MuleException
private static void startMuleContext() throws MuleException {
SpringXmlConfigurationBuilder builder = new SpringXmlConfigurationBuilder(
&mule-config.xml&);
builder.setParentContext(context);
muleContext = new DefaultMuleContextFactory()
.createMuleContext(builder);
muleContext.start();
* 重新启动mule服务
* @param sendDir
public static void restartMuleService(String sendDir) {
MuleLoader.stopMuleContext();
<(&ESB关闭成功&);
包含各类专业文献、高等教育、中学教育、外语学习资料、各类资格考试、专业论文、Mule 实战1245等内容。 
 3. public class Person { 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ...Mule ESB总线讲解 40页 2下载券
Mule ESB 实战 2页 免费
MULE ESB之旅(...  Mule 控制Service的启止_IT/计算机_专业资料。mule控制今日推荐 81份文档
笑话大全集 笑话大全爆笑版 幽默笑话大全 全球冷笑话精选68份文档 新...  E-mule使用方法_IT/计算机_专业资料。1 可以自定义搜索条件,比如文件大小,扩展名。 2 1 可以自定义搜索条件,比如文件大小,扩展名。 2
...  山东省潍坊市2011届高三12月份统考试题(英语含答案)_高三英语_英语_高中教育_教育...After carefully assessing the 37 , the farmer felt sympathy for the mule,...  12页 2财富值如要投诉违规内容,请到百度文库投诉中心...ASP.NET 3.5 从基础到项目实战(VISUAL STUDIO.NET .... [13]UsingMuleWorkingwithServices[EB/...  至于 MuleESB 到底是什么,不多说,宏观概念性的东西网上很多。 但网上关于 Mule 的中文学习资料非常少,更没有多少实战经验可以参考,在我的学习过程 中,主要研究了...Date registerDate =
public class Person
private Date registerDate = new Date();
private int age = 20;
服务接口类 Java代码
public interface PersonService {
String printPerson(Person person) ;
Person createPerson(String name,String surname,int age);
Person[] batchCreatePerson(String namePattern);
public interface PersonService {
String printPerson(Person person) ;
Person createPerson(String name,String surname,int age);
Person[] batchCreatePerson(String namePattern);
}3. 实现类: Java代码 package demo.mule.
public class PersonServiceImpl implements PersonService {
public String printPerson(Person person) {
return "person:name=" + person.getName() +",surname=" + person.getSurname();
public Person createPerson(String name, String surname,int age) {
Person p = new Person(name,surname);
p.setAge(age);
System.out.println("a person is created:" + p.getName());
public Person[] batchCreatePerson(String namePattern) {
Person[] persons = new Person[3];
for (int i = 0; i & persons. i++) {
Person p = new Person(namePattern + i,namePattern + i);
p.setAge( 20 + i );
persons[i] =
package demo.mule.
public class PersonServiceImpl implements PersonService {
public String printPerson(Person person) {
return "person:name=" + person.getName() +",surname=" + person.getSurname();
* test return a complex type by web service
public Person createPerson(String name, String surname,int age) {
Person p = new Person(name,surname);
p.setAge(age);
System.out.println("a person is created:" + p.getName());
public Person[] batchCreatePerson(String namePattern) {
Person[] persons = new Person[3];
for (int i = 0; i & persons. i++) {
Person p = new Person(namePattern + i,namePattern + i);
p.setAge( 20 + i );
persons[i] =
}4. person-config.xml Xml代码
version="1.0" encoding="UTF-8"
&!DOCTYPE mule-configuration PUBLIC "-//MuleSource //DTD mule-configuration XML V1.0//EN" "http://mule.mulesource.org/dtds/mule-configuration.dtd"
id="mule-test" version="1.0"
name="personService"
name="personService" implementation="demo.mule.person.PersonServiceImpl"
address="axis:http://localhost:8082/services"
&!-- not nessesary
name="style" value="wrapped"
name="use" value="literal"
&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE mule-configuration PUBLIC "-//MuleSource //DTD mule-configuration XML V1.0//EN" "http://mule.mulesource.org/dtds/mule-configuration.dtd"&
&mule-configuration id="mule-test" version="1.0"&
&model name="personService"&
&!-- test: http://localhost:8082/services/personService?method=createPerson --&
&mule-descriptor name="personService" implementation="demo.mule.person.PersonServiceImpl"&
&inbound-router&
&endpoint address="axis:http://localhost:8082/services"&&/endpoint&
&/inbound-router&
&!-- not nessesary
&properties&
&property name="style" value="wrapped"/&
&property name="use" value="literal"/&
&/properties&
&/mule-descriptor&
&/mule-configuration&5. server启动 Java代码
public class PersonServiceLaucher {
public static void main(String[] args) throws ConfigurationException {
MuleXmlConfigurationBuilder muleXmlConfigurationBuilder = new MuleXmlConfigurationBuilder();
UMOManager manager = muleXmlConfigurationBuilder.configure("demo/mule/person/person-config.xml");
public class PersonServiceLaucher {
public static void main(String[] args) throws ConfigurationException {
MuleXmlConfigurationBuilder muleXmlConfigurationBuilder = new MuleXmlConfigurationBuilder();
UMOManager manager = muleXmlConfigurationBuilder.configure("demo/mule/person/person-config.xml");
}6. 测试类 Java代码
public class PersonClient {
private MuleClient muleC
public PersonClient() {
muleClient = new MuleClient();
} catch (UMOException e) {
e.printStackTrace();
public void testPrintPerson() throws Exception {
Person person = new Person("David","Jones");
UMOMessage msg = new MuleMessage(person );
UMOMessage message = muleClient.send("axis:http://localhost:8082/services/personService?method=printPerson",msg);
System.out.println("message:" + message.getPayloadAsString());
public void testCreatePerson() throws Exception {
Object[] args = new Object[]{"小龙","李", new Integer(23)};
UMOMessage msg = new MuleMessage(args );
UMOMessage message = muleClient.send("axis:http://localhost:8082/services/personService?method=createPerson",msg);
Person p = (Person)message.getPayload();
System.out.println("message:" + message.getPayloadAsString());
System.out.println("payload:" + p.getName() +"," + p.getSurname() +"," + p.getAge());
public void testBatchCreatePerson() throws UMOException {
Object[] args = new Object[]{"Admin"};
UMOMessage msg = new MuleMessage(args );
UMOMessage message = muleClient.send("axis:http://localhost:8082/services/personService?method=batchCreatePerson",msg);
Person[] ps = (Person[])message.getPayload();
System.out.println("persons:" + ps.length);
for (int i = 0; i & ps. i++) {
Person p = ps[i];
System.out.println("person:" + p.getName() +"," + p.getSurname() +"," + p.getAge());
public static void main(String[] args) throws Exception {
PersonClient personClient = new PersonClient();
personClient.testPrintPerson();
personClient.testCreatePerson();
personClient.testBatchCreatePerson();
public class PersonClient {
private MuleClient muleC
public PersonClient() {
muleClient = new MuleClient();
} catch (UMOException e) {
e.printStackTrace();
public void testPrintPerson() throws Exception {
Person person = new Person("David","Jones");
UMOMessage msg = new MuleMessage(person );
UMOMessage message = muleClient.send("axis:http://localhost:8082/services/personService?method=printPerson",msg);
System.out.println("message:" + message.getPayloadAsString());
public void testCreatePerson() throws Exception {
Object[] args = new Object[]{"小龙","李", new Integer(23)};
UMOMessage msg = new MuleMessage(args );
UMOMessage message = muleClient.send("axis:http://localhost:8082/services/personService?method=createPerson",msg);
Person p = (Person)message.getPayload();
System.out.println("message:" + message.getPayloadAsString());
System.out.println("payload:" + p.getName() +"," + p.getSurname() +"," + p.getAge());
public void testBatchCreatePerson() throws UMOException {
Object[] args = new Object[]{"Admin"};
UMOMessage msg = new MuleMessage(args );
UMOMessage message = muleClient.send("axis:http://localhost:8082/services/personService?method=batchCreatePerson",msg);
Person[] ps = (Person[])message.getPayload();
System.out.println("persons:" + ps.length);
for (int i = 0; i & ps. i++) {
Person p = ps[i];
System.out.println("person:" + p.getName() +"," + p.getSurname() +"," + p.getAge());
public static void main(String[] args) throws Exception {
PersonClient personClient = new PersonClient();
personClient.testPrintPerson();
personClient.testCreatePerson();
personClient.testBatchCreatePerson();
}测试过程: 1) 启动Mule服务容器 2) 执行PersonClient 总结:
1) Mule暴露POJO为一个服务还是很简单的, 配置非常少
2) 传递和返回Java复杂数据类型,自定义数据类型都非常方便。不过,客户端需要明确知道每个方法传递的参数个数和类型,以及返回的参数类型,并且需要自己type cast。 在具体项目中,可以自己再做一层封装或用AOP, 以本地调用的方式调用 mule 的web service。

我要回帖

更多关于 configuration.xml 的文章

 

随机推荐