Java—webservice客户端访问案例

来源:互联网 发布:mac 鼠标 编辑:程序博客网 时间:2024/05/22 07:54

在开发项目中,接触到了webservice,现总结webservice常见的几种调用方式:

1,Axis2:

下载Axis2,并解压。 
官方网址:http://ws.apache.org/axis2/ 

打开一个cmd命令窗口,cd 路径到axis2的bin目录

执行 wsdl2java -uri http://192.168.1.248:8081/services/registwx?wsdl -p com.alltrust.esb.service.common -s -o stub 
(一般情况下红色部分是根据实际情况修改,其他不用改)

-uri 参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。 

-p 参数指定了生成的Java类的包名,(实际项目中打算把该文件放在哪个包下就填哪个包名)

-o参数指定了生成的一系列文件保存的根目录。 

在执行完上面的命令后,就会发现在当前目录下多了个stub目录, 

在stub/src/com/alltrust/esb/service/common目录可以找到一个XXXStub.java文件,也有可能有两个文件

把生成的 XXXStub.java  文件复制到上面填写的包下若有两个或多个文件一起复制进去,然后在需要调用的地方new XXXStub() 就可以了;

示例代码


try { 
//总调用对象 
RegistWXImplServiceStub wxstub = new RegistWXImplServiceStub(); 
//请求数据对象 
RegistWXImplServiceStub.RequestRegistWXE reqStub = new RegistWXImplServiceStub.RequestRegistWXE(); 
RegistWXImplServiceStub.RequestRegistWX param = new RegistWXImplServiceStub.RequestRegistWX(); 

RegistWXImplServiceStub.RequestHead head = new RegistWXImplServiceStub.RequestHead(); 
RegistWXImplServiceStub.RequestRegistData data = new RegistWXImplServiceStub.RequestRegistData(); 
//设置请求数据 
head.setFeedName("");//请求头的值参看接口文档 
head.setFeedSource(""); 
//... 
//所有值都要设置,没有的设置""空字符串 
data.setMobileNumber(""); 
//.... 

param.setRequestHead(head); 
param.setRequestRegistData(data); 

reqStub.setRequestRegistWX(param); 

//stub对象调用registWX()方法 ,传入上面设置的数据对象 
RegistWXImplServiceStub.ResponseRegistWXE respstub = wxstub.registWX(reqStub); 
RegistWXImplServiceStub.ResponseRegistWX resp = respstub.getResponseRegistWX(); 
RegistWXImplServiceStub.ResponseHead resphead =resp.getResponseHead(); 
RegistWXImplServiceStub.ResponseUserData respdata = resp.getResponseUserData(); 

//返回数据 
String returncode = resphead.getReturnCode(); 
String returnMsg = resphead.getReturnMessage(); 
String userId = respdata.getUserId(); 

} catch (AxisFault e) { 
e.printStackTrace(); 
} catch (RemoteException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} catch (FaultRegistWX e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
2,通过URL获得wsdl文件

第一步:根据接口系统的URL在浏览器中得到wsdl文件, 然后另存为XXXX.wsdl文件

 

    后缀名改为 .wsdl

    新建一个Java工程

    把wsdl文件复制到工程跟目录

    在新建的工程上右键new ->other->web service->web service client

    然后点next弹出新窗口,再在新窗口点browse弹出新窗口,再点browse,选择刚刚新建的工程里面的wsdl文件
    
    点ok,再点finish,客户端代码就生成了

3,Xfile

public boolean connected() throws Exception{
Client client = new Client(new URL("http://XXXX?wsdl"));
Object[] results = client.invoke("connected", new Object[] {});
return (Boolean)results[0];
}

0 0
原创粉丝点击