1. 程式人生 > >mule發布調用webservice

mule發布調用webservice

mule esb webservice mule esb

mule發布webservice

使用mule esb消息總線發布和調用webservice都非常精簡,mule包裝了所有操作,你只需要拖控件配置就可以,下面講解mule發布:

1.下面是flow,http監聽接口,CXF發布webservice,java用來引用webservice的方法。

技術分享圖片

2.xml代碼如下:

    <flow name="webService">
    	<http:listener config-ref="HTTP_Listener_Configuration" path="hello" doc:name="HTTP"/>
    	<cxf:jaxws-service serviceClass="com.test.HelloWorld" doc:name="CXF"/>
    	<component class="com.test.HelloWorldImpl" doc:name="Java"/>
    </flow>

3.java代碼如下:

①Impl實現類

package com.test;

import javax.jws.WebService;

@WebService(endpointInterface = "com.test.HelloWorld",  
serviceName = "HelloWorld")
public class HelloWorldImpl implements HelloWorld{

	@Override
	public String sayHi(String text) {
		// TODO Auto-generated method stub
		return "Hello " + text;  
	}

}

②Impl實現類

package com.test;

import javax.jws.WebService;

@WebService(endpointInterface = "com.test.HelloWorld",  
serviceName = "HelloWorld")
public class HelloWorldImpl implements HelloWorld{

	@Override
	public String sayHi(String text) {
		// TODO Auto-generated method stub
		return "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-config name="HTTP_Listener_Configuration8081" host="localhost" port="8081" doc:name="HTTP Listener Configuration"/>
    <ws:consumer-config name="Web_Service_Consumer" wsdlLocation="http://localhost:8080/api/hello?wsdl" service="HelloWorldService" port="HelloWorldPort" serviceAddress="http://localhost:8080/api/hello" doc:name="Web Service Consumer"/>
    <flow name="customerFlow">
        <http:listener config-ref="HTTP_Listener_Configuration8081" path="/webService" doc:name="HTTP"/>
        <set-payload value="      &lt;web:PostPatientRequest  xmlns:web=&quot;http://Mozi.com/Webservices/&quot;&gt;
         &lt;web:requestContent&gt;#[json:]&lt;/web:requestContent&gt;
      &lt;/web:PostPatientRequest&gt;" doc:name="Set Payload" encoding="UTF-8" mimeType="application/xml"/>
        <ws:consumer config-ref="Web_Service_Consumer" operation="sayHi" doc:name="Web Service Consumer"/>
        <json:xml-to-json-transformer doc:name="XML to JSON"/>
    </flow>

至此,請求webservice發布成功!

mule發布調用webservice