通过IDE生成和手动call调用webservice

通过IDE自动生成的代码调用webservice服务

我们的IDE一般来说都是能够通过各种各样的工具来支持我们的开发使我们的开发变得更加的便捷。对于webservice来说自然也是如此,所以我们可以轻松的调用webservice插件来进行客户端代码的生成。在这里我们直接new就可以了


把我们本地的WSDL的地址输入进去



直接finish,自动生成了一堆的类和对象



然后我们直接根据以下的方法就可以测试我们的webservice接口的情况了

package localhost.webserviceTest.test;

import org.apache.axis.AxisFault;

import localhost.webserviceTest.services.webServiceTest.HellowWorldProxy;
import localhost.webserviceTest.services.webServiceTest.WebServiceTestSoapBindingStub;

public class webClientTest {

	
	public static void main(String[] args ){
		try {
			HellowWorldProxy pHellowWorldProxy= new HellowWorldProxy();
			System.out.print(pHellowWorldProxy.test(" zhengfang.sun"));
		
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

结果如下图所示



org.apache.axis.client.Call调用

Webservice接口我们自然可以通过IDE提供的功能进行生成,但是有时候也是会出现意外的,提供webservice的系统或者是服务方所在的网络环境和调用端的不连通,没有办法通过IDE进行生成,这个时候掌握其本质的调用方法就变得尤为重要

这种方法适用于在能够看到WSDL或者是能够知晓服务方提供的服务信息的前提下就可以使用。其核心是通过org.apache.axis.client.Call这个类进行webservice的调用。

package localhost.webserviceTest.test;  
  
import java.net.MalformedURLException;  
import java.rmi.RemoteException;  
 
import javax.xml.namespace.QName;  
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;  
import org.apache.axis.client.Service;  
 
public class ClientTest {  
  
    public static void main(String[] args) throws MalformedURLException, RemoteException {  
          
        Service service = new Service();  
        try {  
             
           Call call = (Call) service.createCall();  
            //设置地址  注意这里的地址是附带WSDL的
    call.setTargetEndpointAddress(new java.net.URL("http://localhost:8080/webserviceTest/services/webServiceTest?wsdl"));  
          //设置要执行的方法                                      命名空间                        方法名
    call.setOperationName(new QName("http://localhost:8080/webserviceTest/services/webServiceTest","test")); 
           //设置要传入参数,如果没有要传入的参数,则不要写这个 
           //如果我们只有单个参数的话这个参数的名称其实可以随意选取 
    call.addParameter("testStr", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);  
            //设置返回的类型  
    call.setReturnType(org.apache.axis.Constants.XSD_STRING);  
              
           String name = "zhengfang.sun1"; 
           //执行,调用webservice  
           String result = (String) call.invoke(new Object[]{name});  
           System.out.println(result);               
        } catch (ServiceException e) {  
           e.printStackTrace();  
        }  
    }  
  
}  

方法的执行结果



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值