`
sillycat
  • 浏览: 2542925 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

mule2.2.x架构(八)部署到WEB项目

    博客分类:
  • SOA
阅读更多
mule2.2.x架构(八)部署到WEB项目

所有的示例文档
http://www.mulesoft.org/display/MULE2INTRO/Examples

本来想参考webapp的,结果没有成功,于是在原来的例子基础上一个一个自己慢慢集成到WEB中试试。
在web.xml中配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Mule</display-name>
<description>MuleWebAppSamples</description>
<!-- 装载的配置文件 -->
<context-param>
   <param-name>org.mule.config</param-name>
   <param-value>
    echo/echo-axis-config.xml,
    echo/echo-cxf-config.xml
        </param-value>
</context-param>
<!-- 容器的监听器 -->
<listener>
   <listener-class>
    org.mule.config.builders.MuleXmlBuilderContextListener
   </listener-class>
</listener>
<welcome-file-list>
   <welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
里面的两个配置文件就是使用的原来项目中的,如果两个都要一起启动,那么后面有提到service和model名字需要做修改,不然要冲突。也可以一个一个启动。
另外我在pom.xml中引入了一下的包:
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transports</artifactId>
<version>2.2.1</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.mule</groupId>
<artifactId>mule</artifactId>
<version>2.2.1</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.mule</groupId>
<artifactId>mule-core</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.mule.tests</groupId>
<artifactId>mule-tests-functional</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.python</groupId>
<artifactId>jython</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.sun.script</groupId>
<artifactId>jython-engine</artifactId>
<version>1.1jdk14</version>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-builders</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-servlet</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-management</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-stdio</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-vm</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-client</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-axis</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-cxf</artifactId>
<version>2.2.1</version>
</dependency>

echo/echo-axis-config.xml
调用方法
http://localhost:65081/services/EchoUMO?method=echo&param=iamcarl
返回
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<echoResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<echoReturn xsi:type="xsd:string">iamcarl</echoReturn>
</echoResponse>
</soapenv:Body>
</soapenv:Envelope>
WSDL文件路径http://localhost:65081/services/EchoUMO?wsdl,嘿嘿,用刚刚正的xfire的client来调用一下试试。
核心调用程序如下:
Client client = new Client(new URL(
"http://localhost:65081/services/EchoUMO?wsdl"));
Object[] results = client.invoke("echo", new Object[] { "hello mule!" });
System.out.println("results:" + results[0]);
}
打印出了hello mule

echo/echo-cxf-config.xml
拷贝了echo-cxf-config.xml后,需要修改axis和cxf里面的 model名称和service名称分别如下:
AXIS: <model name="echoAxis">
<service name="EchoUMOAxis">
CXF: <model name="echoCxf">
<service name="EchoUMOCxf">
修改了以上名字后,Axis的调用的service名字就改为了echoAxis了,需要访问
http://localhost:65081/services/EchoUMOAxis?method=echo&param=iamcarl

http://localhost:65081/services/EchoUMOAxis?wsdl

调用CXF方法不受这个名字的影响,而是在address中决定的,为了看起来统一方便,我将address的名字做了修改,
加上了Cxf的后缀
<cxf:inbound-endpoint address="http://localhost:65082/services/EchoUMOCxf"
serviceClass="com.sillycat.easymule.echo.Echo"/>
那么访问CXF的链接就变为
http://host/service/OPERATION/PARAM_NAME/PARAM_VALUE
http://localhost:65082/services/EchoUMOCxf/echo/text/hello
返回
<soap:Envelope>
<soap:Body>
<ns2:echoResponse>
<text>hello</text>
</ns2:echoResponse>
</soap:Body>
</soap:Envelope>
WSDL文件路径:http://localhost:65082/services/EchoUMOCxf?wsdl,用xfire的client访问一下,发现取不到返回值:(,不过我对cxf也不熟悉。所以这里也不去查找了。
分享到:
评论

相关推荐

    Mule2.2 BookStore例子学习

    通过深入研究这个Mule2.2 BookStore实例,不仅可以掌握Mule的基本用法,还能了解到如何将理论知识应用于实际项目,提升你在企业集成领域的实践能力。记得结合博文链接中的内容,以便更全面地学习和理解。

    mule开发环境搭建和部署

    然后,在该项目下新建一个包,名称为com.mule.nick.test,在该包下新建一个类,类名为SayHello。在SayHello类中,新增一个sayHello()方法,返回字符串。 在config目录下新增一个sayHello-mule-config.xml配置文件,...

    Mule 2.x Getting Started Guider中文

    - **部署灵活性**: Mule 可以部署在不同的系统拓扑结构中,既可以作为 ESB 使用,也可以嵌入到其他系统中。 #### 二、消息框架 Mule 提供了一个消息框架,使得不同的应用程序可以通过特定的频道或队列进行通信。...

    GOMPlayer视频播放器x下载V2.2.56.5181绿色中文免费版

    GomPlayer类似于KMplayer,同样也是一款来自韩国播放器,界面精美、功能全面。多媒体播放器GOMPlayer... 以‘查找解码’功能来支持所有视频的播放,在BT或e-mule等P2P网站中下载的影片会经常不能播放,GOM Player以独

    mule web service exsample

    ".project" 和 "mule-deploy.properties" 是Mule项目的元数据文件,分别用于Eclipse项目设置和Mule应用的部署属性。"mule-app.properties" 可能包含了应用级别的配置变量,这些变量可以在整个应用中被引用。 6. **...

    Mule讲解.docx

    Mule讲解.docxMule讲解.docx

    mule 学习.zip

    包含http、cxf、vm、sap、activeMq、ftp、file、poll、Smtp、attachment、melExpression、Java、template节点的使用示例等。

    Mule V.S ServiceMix

    JBI标准定义了部署单元格式,使得BPEL引擎、规则引擎、转换引擎、脚本引擎等集成组件能够热部署到ServiceMix环境中。ServiceMix还包括对WS-*规范的支持,例如WS通知,这些都是通过JBI实现的。 ServiceMix的JBI内核...

    最高级的多媒体播放工具(GOM Media Player) v2.2.64.5212 简体中文版.zip

    2) 支持BT或e-mule等P2P站点中接收到损坏的文件, 因中断页传送完成的文件, 索引损坏的AVI文件的播放. 3) 想截取的视频画面可以储存为图像 (JPG, BMP)文件, 还可以通过连续截图取功能来实现把影片的场景以帧为单位, ...

    elastic-apm-mule3-agent:适用于Mule 3.x的Elastic APM代理

    弹性APM Mule3代理介绍此插件允许使用Elastic APM监视Mule 3.x组件的应用程序性能。 它提供了一种非侵入性的方式来度量和基准化Mule中的各个流程和步骤,并添加了对Mule组件的应用程序性能监控,以与日志,指标和...

    mule-standalone-3.9.0.zip

    - 使用命令行工具或启动脚本(如“bin/mule.bat”或“bin/mule.sh”)启动Mule ESB。 5. **监控与管理**: - Mule ESB 3.9.0提供了一个内置的管理界面,可以通过Web浏览器访问,用于监控运行状态、查看日志和管理...

    EIP经典案例ESB实践之Mule实现.rar_eip_esb_mule_mule esb

    Mule ESB以其高效、灵活和易于使用的特性,被广泛应用于各种集成项目中。Mule ESB支持多种协议和标准,如HTTP、JMS、FTP、SOAP、REST等,可以处理XML、JSON等多种数据格式,能够轻松实现系统间的交互和数据转换。 *...

    在tomcat中部署mule项目

    &lt;Listener className="org.mule.module.tomcat.MuleTomcatListener" /&gt; ``` 这行代码将使Tomcat识别Mule应用并支持热部署。 2. 创建一个名为`mule-libs`的目录在Tomcat的根目录下。然后,从Mule的主目录`lib`...

    mule3.4对应应用部署到tomcat7相关步骤文档

    &lt;Listener className="org.mule.module.tomcat.MuleTomcatListener" /&gt; ``` 3. 复制Mule库文件:将Mule安装目录下的`lib`文件夹中除`boot`目录外的所有文件和文件夹复制到Tomcat的根目录下的`mule-libs`文件夹...

    Mule源码下载,编译成eclipse项目,发布代码

    Main标签中,Project填入该项目名,Main class中填入org.mule.MuleServer。Arguments标签中,Program arguments中填入-config配置文件路径,如-config/home/shin/mule-3.x/examples/echo/src/main/app/mule-config....

    ESB解决方案-mule分享.docx

    ESB解决方案-mule分享 ESB(Enterprise Service Bus)是传统中间件技术与 XML、WEB 服务等技术结合的产物。它提供了网络中最基本的服务总线功能,用于集成多个异构系统,实现系统之间的数据交换和业务流程集成。 ...

    ESB解决方案-mule分享.pdf

    【企业服务总线(ESB)】是现代企业IT架构中的关键组成部分,它解决了企业内部“信息孤岛”问题,实现了系统间的高效集成。ESB的出现源于企业对信息共享、系统互操作性和软件重用的迫切需求。随着业务规模的扩大和...

Global site tag (gtag.js) - Google Analytics