第一次用 java 调webervice,网上看了很多博客,能用的没几个,综合几个博客,终于成功调用了。
package com.casco.action;
import org.apache.axis.client.Call;  
import org.apache.axis.client.Service;  
import javax.xml.namespace.QName; 
public class syncProjectData  {
	
     public void syncProject(String projectNo)
     {
    	 
     }
     
     public static void main(String[] args) {
    	 try {  
             String endpoint = "XXXX?wsdl";  
             // 直接引用远程的wsdl文件  
             // 以下都是套路  
             Service service = new Service();  
             Call call = (Call) service.createCall();  
             call.setTargetEndpointAddress(endpoint);  
             call.setOperationName(new QName("http://tempuri.org/","GetProjectByCondition")); // WSDL里面描述的接口名称  
             call.addParameter(new QName("http://tempuri.org/","condition"), 
                     org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数  
             call.setUseSOAPAction(true); 
             call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING); //返回参数的类型
             call.setSOAPActionURI("http://tempuri.org/GetProjectByCondition"); //这个也要注意 就是要加上要调用的方法GetProjectByCondition,不然也会报错
             String temp = "A0117032"; //参数的值
             String result = (String) call.invoke(new Object[] { temp });  
             // 给方法传递参数,并且调用方法  
             System.out.println("result is " + result);  
         } catch (Exception e) {  
             System.err.println(e.toString());  
         }  
    	 
     }
}
原文:https://www.cnblogs.com/wdnrsjd/p/9197843.html