java调用webservice接口

别人提供一个wsdl时 你需要根据这个wsdl写一个java方法实现调用这个接口,得到接口返回的结果。
例如别人提供的wsdl如下:注意其中圈住的部分
java调用webservice接口_第1张图片
需要注意的是: 1、命名空间:targetNamespace 即此服务在服务端的包路径 2、此接口中包含的方法 这里调用getNeResult方法

package com.erlei;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
 public class CXFClient { 
     public static void main(String[] args) { 
         //都是固定的套路
         try{
                Service service = new Service();
                Call call = null;
                call = (Call) service.createCall();
                call.addParameter("number", org.apache.axis.encoding.XMLType.XSD_STRING,ParameterMode.IN);
                call.setUseSOAPAction(true);
                call.setTargetEndpointAddress(new java.net.URL("http://localhost:8090/JSGoduConnection/HSS?wsdl"));
                call.setOperationName(new QName("http://starit.com/", "getNeResult"));
                call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
                String ret = (String)  call.invoke(new Object[]{"18551661111"});
                System.out.println("返回报文" + ret);
         }catch(Exception e){
             e.printStackTrace();
         } 
     }
}

java工程即可,至少需要以下几个jar包:
axis.jar,jaxrpc.jar,commons-logging.jar,commons-discovery-0.2.jar,wsdl4j.jar
OK,就这么简单。

你可能感兴趣的:(工作)