mule发布webservice

使用mule esb消息总线发布和调用webservice都非常精简,mule包装了所有操作,你只需要拖控件配置就可以,下面讲解mule发布:

1.下面是flow,http监听接口,CXF发布webservice,java用来引用webservice的方法。

2.xml代码如下:

<flowname="webService"><http:listenerconfig-ref="HTTP_Listener_Configuration"path="hello"doc:name="HTTP"/><cxf:jaxws-serviceserviceClass="com.test.HelloWorld"doc:name="CXF"/><componentclass="com.test.HelloWorldImpl"doc:name="Java"/></flow>

3.java代码如下:

①Impl实现类

packagecom.test;importjavax.jws.WebService;@WebService(endpointInterface="com.test.HelloWorld",serviceName="HelloWorld")publicclassHelloWorldImplimplementsHelloWorld{@OverridepublicStringsayHi(Stringtext){//TODOAuto-generatedmethodstubreturn"Hello"+text;}}

②Impl实现类

packagecom.test;importjavax.jws.WebService;@WebService(endpointInterface="com.test.HelloWorld",serviceName="HelloWorld")publicclassHelloWorldImplimplementsHelloWorld{@OverridepublicStringsayHi(Stringtext){//TODOAuto-generatedmethodstubreturn"Hello"+text;}}

4.Java控件引用Class Name: com.test.HelloWorldImpl。


启用mule服务,访问http://localhost:8080/api/hello?wsdl结果如下:

至此,发布成功。


mule请求webservice

使用mule esb请求webservice非常简单,只需要使用Web Service Consumer控件就可以,下面讲解请求webservice:

1.下面是flow,http请求监听接口,Web Service Consumer调用接口,Set Payload传递参数。

2.请求webservice需要使用一个工具来拼装请求的body:SoapUI-5.2.1.exe,下载链接在附件,使用方法如下:

我们只需要<soap:Body>里面的参数,需要把xmlns:web="http://Mozi.com/Webservices/" 粘贴到<web:PostPatientRequest> 请求里,如下:

<web:PostPatientRequest xmlns:web="">http://Mozi.com/Webservices/">

<!--Optional:?里面是你的参数-->

<web:requestContent>?</web:requestContent>

</web:PostPatientRequest>

3.xml代码如下:

<http:listener-configname="HTTP_Listener_Configuration8081"host="localhost"port="8081"doc:name="HTTPListenerConfiguration"/><ws:consumer-configname="Web_Service_Consumer"wsdlLocation="http://localhost:8080/api/hello?wsdl"service="HelloWorldService"port="HelloWorldPort"serviceAddress="http://localhost:8080/api/hello"doc:name="WebServiceConsumer"/><flowname="customerFlow"><http:listenerconfig-ref="HTTP_Listener_Configuration8081"path="/webService"doc:name="HTTP"/><set-payloadvalue="&lt;web:PostPatientRequestxmlns:web=&quot;http://Mozi.com/Webservices/&quot;&gt;&lt;web:requestContent&gt;#[json:]&lt;/web:requestContent&gt;&lt;/web:PostPatientRequest&gt;"doc:name="SetPayload"encoding="UTF-8"mimeType="application/xml"/><ws:consumerconfig-ref="Web_Service_Consumer"operation="sayHi"doc:name="WebServiceConsumer"/><json:xml-to-json-transformerdoc:name="XMLtoJSON"/></flow>

至此,请求webservice发布成功!