java 调用 wsdl形式的webservice 示例
生活随笔
收集整理的這篇文章主要介紹了
java 调用 wsdl形式的webservice 示例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
正在開發(fā)的中間件要用到第三方提供的webservice,網(wǎng)上的資料稂莠不齊,java調(diào)用webservice折騰了我兩天,不就是調(diào)用URL上對應(yīng)的方法嘛,尼瑪怎么這么難調(diào)用?(還是RESTFUL好用)方法太多看到頭暈眼花,我喜歡簡單明了,拿來就用的,不要搞一堆的方法,蘿莉啰嗦,寫得不清不楚,漏這漏那的,用起來不是這錯就那錯,一氣之下,小弟自己整理一個簡單步驟,與大家分享,歡迎大家狂噴!
步驟如下:
1.下載AXIS2類庫,AXIS2是目前java調(diào)用webservice的一個主要方法(由于更新較頻繁,請自行g(shù)oogle該類庫的網(wǎng)址)
2.由于是第三方webservice,直接引入AXIS2的包就可以用了,代碼如下:
import java.rmi.RemoteException; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType;public class webServiceTest {public String invokeRemoteFuc() {String endpoint = "http://localhost:8080/webservice/services/helloworld";String result = "no result!";Service service = new Service();Call call;Object[] object = new Object[1];object[0] = "Dear I miss you";//Object是用來存儲方法的參數(shù)try {call = (Call) service.createCall();call.setTargetEndpointAddress(endpoint);// 遠(yuǎn)程調(diào)用路徑call.setOperationName("say");// 調(diào)用的方法名// 設(shè)置參數(shù)名:call.addParameter("str1", // 參數(shù)名XMLType.XSD_STRING,// 參數(shù)類型:StringParameterMode.IN);// 參數(shù)模式:'IN' or 'OUT'// 設(shè)置返回值類型:call.setReturnType(XMLType.XSD_STRING);// 返回值類型:String result = (String) call.invoke(object);// 遠(yuǎn)程調(diào)用} catch (ServiceException e) {e.printStackTrace();} catch (RemoteException e) {e.printStackTrace();}return result;}public static void main(String[] args) {webServiceTest t = new webServiceTest();String result = t.invokeRemoteFuc();System.out.println(result);} }
該方法的原理很簡單,通過AXIS2封裝好的類設(shè)置URL和參數(shù),直接調(diào)用就好了,我們要關(guān)注的就是設(shè)置URL,方法,還有方法的參數(shù),其他的copy&paste好啦,很簡單吧。
總結(jié)
以上是生活随笔為你收集整理的java 调用 wsdl形式的webservice 示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Leonardo及客户案例
- 下一篇: SAP ITS mobile 简介