java怎么使用axis调用webservice

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么使用axis调用webservice相关的知识,希望对你有一定的参考价值。

参考技术A 方式一:生成客户端代码调用方式。
通过插件工具生成客户端代码进行调用。例如:存在一服务为 http://127.0.0.1:8000/axis2/services/SMSSendService?wsdl通过插件可以生成SMSSendServiceStub.Java和SMSSendServiceCallbackHandler.java类。调用的客户端代码如:

try

SMSSendServiceStub stub=new SMSSendServiceStub();

SMSSendServiceStub.method1 m1=new SMSSendServiceStub.method1();
m1.setParam1("xxx");

try
String ret=stub.multiSend(m1).get_return();
System.out.print(ret);
catch (RemoteException e)
e.printStackTrace();

catch (AxisFault e)
// TODO Auto-generated catch block
e.printStackTrace();

方式二:使用axis2.rpc.client.RPCServiceClient方式调用。

调用的代码简单举例如下:

import org.apache.axis2.addressing.EndpointReference;

import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
......

try

final String endpoint = "http://127.0.0.1:8000/axis2/services/SMSSendService";
String opName = "method1";
String param="xxx";
Object[] opArgs = new Object[] param ;
Class<?>[] opReturnType = new Class[] String[].class ;

RPCServiceClient serviceClient = new RPCServiceClient();//此处RPCServiceClient 对象实例建议定义成类中的static变量,否则多次调用会出现连接超时的错误。

Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(endpoint);
options.setTo(targetEPR);
QName opQName = new QName("http://service.ws.sms.ipcc.ydtf.com",
opName);
Object[] ret = serviceClient.invokeBlocking(opQName, opArgs,
opReturnType);
System.out.println(((String[]) ret[0])[0]);
catch (AxisFault e)
e.printStackTrace();

以上是关于java怎么使用axis调用webservice的主要内容,如果未能解决你的问题,请参考以下文章

Java调用wsdl,怎么实现

如何调用webservice

关于java调用.asmx文件

求救Java怎么调用 net的webService

java axis2 调用webservice 怎么捕获超时异常(即超时了让它停下来,不要报错)

java程序怎么调用webservice接口,实现发送短信功能