webservice的三种调用方法

一、客户端调用
找个目录打开cmd命令行执行以下命令

wsImport -keep http://localhost:9933/service/user?wsdl

生成java服务端java类
正常来说生成的java代码,只有一个接口,其余的都是java类,以及一个接口的实现类
在这里插入图片描述
图中圈出的地方,要改成自己本地包所在位置。

public static void main(String[] args) {

        //CxfImtreatprelistService  接口对象  
        //   GetBZLZList 实现类
        CxfImtreatprelistService getBZLZList= new GetBZLZList().getCxfImtreatprelistServiceImplPort();
        String a=getBZLZList.getTreatmentList("123");
        System.out.println(a);
    }

二、CXF方式
maven依赖

<!--WerbService CXF依赖-->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.1.12</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.1.12</version>
        </dependency>
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://192.169.2.89:1506/services/WSInterface?wsdl");
QName qname = new QName("namespace", "methodName");
 // namespace是命名空间,methodName是方法名
// 方法名,参数可多个
Object[] objects=client.invoke(qname ,"参数1","参数2");
//调用web Service//输出调用结果
System.out.println(objects[0].toString());

三、使用axis调用
maven依赖

<!--      axis  -->
        <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
            <version>1.4</version>
        </dependency>
<!--        rpc-->
        <dependency>
            <groupId>javax.xml.rpc</groupId>
            <artifactId>javax.xml.rpc-api</artifactId>
            <version>1.1.2</version>
        </dependency>
<!--      discovery  -->
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.5</version>
        </dependency>
import org.apache.axis.encoding.XMLType;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
 try {
            String endpoint = "http://127.0.0.1:8093/webservice/GetBZLZList?wsdl";
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(endpoint);
            String parametersName = "parm"; 		// 参数名//对应的是 public String printWord(@WebParam(name = "parm") String settle_num);
//	            call.setOperationName("printWord");  		// 调用的方法名//当这种调用不到的时候,可以使用下面的,加入命名空间名
            call.setOperationName(new QName("http://service.admin.yogo.com/", "getTreatmentList"));// 调用的方法名
            call.addParameter(parametersName, XMLType.XSD_STRING, ParameterMode.IN);//参数名//XSD_STRING:String类型//.IN入参
            call.setReturnType(XMLType.XSD_STRING); 	// 返回值类型:String
            String message = "123456789";
            String result = (String) call.invoke(new Object[] { message });// 远程调用
            System.out.println("result is " + result);
        } catch (Exception e) {
            System.err.println(e.toString());
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值