1、使用xfire调用WebService方式一
步骤:
1、创建org.codehaus.xfire.client.Client实例
Client
c =
new Client
(new
java.net.URL.URL(
"WebService
的wsdl
地址"
)
);
2、调用webservice方法
String result = (String)c.
invoke(
"WebService方法名"
,
new
Object[]{
"参数"
});
这种方式算是最简单的一种,但是不推荐使用,因为这种方式依赖jar包:
XmlSchema-1.4.7,这个jar包好像已经不再维护了,而且有个和这个jar包很像的jar包xmlschema-core-2.0.1,仍在维护。
xmlschema-core-2.0.1和XmlSchema-1.4.7里面的方法基本都一样,但就是那一小部分区别导致如果引入xmlschema-core-2.0.1这个jar包,上面的代码就不能正确运行。
2、使用使用xfire调用WebService方式二
步骤:
1、首先创建一个WebService的接口(比如命名:ITest),接口里面定义需要调用的方法包括参数。
2、使用 org.codehaus.xfire.service.binding.ObjectServiceFactory.创建xfire.Service
Service serviceModel = new ObjectServiceFactory()
.create(
ITest.class, null,
"webservice的wsdl地址"
, null);
3、使用org.codehaus.xfire.client.XFireProxyFactory创建webservice接口实例
ITest itest = (ITest)
new
XFireProxyFactory().create(
serviceModel, "webservice地址"
);
4、通过接口实例调用webservice方法
String result =
itest.方法名(
"参数"
);
这种方式比较常用,唯一有点不足的地方就是需要按照调用的方法创建相应的接口,不过可以接受。
3、使用apache的axis调用WebService
步骤:
1、使用org.apache.axis.client.Service创建org.apache.axis.client.Call
Call call =
new
Service.
createCall();
2、通过call设置调用地址、方法、参数和返回值
call.setTargetEndpointAddress(
"地址"
);// 远程调用路径
call.setOperationName(
"方法"
);// 调用的方法名
call.addParameter(
"参数1", "参数类型", "出入参标志"
);
call.addParameter(
"参数2", "参数类型", "出入参标志"
);
...
call.setReturnType(
"返回值类型"
);// 返回值类型:String
3、方法调用
String result = (String)
call.invoke(
new
Object[]{"参数对应的值"})
apache提供的方式,依赖apache提供的几个jar包,调用过程比较简单,推荐使用。