1. 程式人生 > >axis1.4呼叫WebService報找不到分派方法

axis1.4呼叫WebService報找不到分派方法

解決方法

在設定OperationName時,要new一個QName設定namespace。
public String findUserInfoByName(String name) {
        String result = null;
        try {
            String endpoint = "http://test.com/CrmInfo/CrmInfoPort?wsdl";
            //直接引用遠端的wsdl檔案
            //以下都是套路
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new
java.net.URL(endpoint)); /** *注意這裡,要設定Namespace */ call.setOperationName(new QName("http://server.com/","findUserInfoByName"));//WSDL裡面描述的介面名稱 call.addParameter("arg0", XMLType.XSD_STRING, ParameterMode.IN);//介面的引數 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設定返回型別
result = (String)call.invoke(new Object[]{name}); //給方法傳遞引數,並且呼叫方法 System.out.println("result is :"+result); } catch (Exception e) { System.err.println(e.toString()); } return result; }