最近学习了Web Service,下面总结如何使用java调用Web Service
先确认项目中包含了jaxrpc.jar和axis.jar
下面就开始调用Web Service
先写一个接口,命名为 HelloClientInterface.java
其中的方法名,必须要跟wsdl文档中描述的方法名一致,注意大小写。(因为我调用的wsdl中的方法名首字母是大写,所以这里就定义成大写字母开头)
然后就可以写测试类了
首先需要定义一些变量和常量,以及对变量初始化
然后,首先获得一个Service对象,该Service对象在javax.xml.rpc包中
Service afService = null; try { ServiceFactory serviceFactory = ServiceFactory.newInstance(); afService = serviceFactory.createService(new URL(wsdlLink), serverQName); } catch (Exception ignore) { return null; } return afService;
如果Web Service方法中返回了复合类型,如返回了一个Project对象,在java调用时还需要
对这个返回对象进行反序列化的类型映射,如果返回类型是基本类型,如String,int,boolean
等等,就不需要进行反序列化的类型映射了。
如下代码可以看出,Web Service返回的是一个Project类型的对象,所以先用java创建一个Project的javabean,注意该javabean中的字段必须和wsdl文档中描述的相一致。
之后就要获得代理了
把Web Service代理成我们所定义的借口的一个对象,之后就可以把上述代码一些使用
现在写测试main函数
上述代码,首先调用了Add(Project project)方法添加了一个project到数据库中,
然后,调用GetProject(int id)方法,通过id获得数据库中该id相对应的Project.