前几天公司需要调用webservice接口实现某个东西,之前没有接触过这个东西,于是乎就开始满地寻找,首先调用之前我们先要检测下这个我们这个所需接口的正确性,可以弄点测试数据.。
我用的是wscaller.jar这个包,怎么用的请参照https://wenku.baidu.com/view/0e2432e949649b6648d747de.html。
百度的结果调用的方法有很多种,spring自带的方式,cxf,axis都可以。因为时间比较紧急,所以我选择的是比较成熟的cxf,而且用起来也很简单。
下面直接甩代码,对了甩代码之前还有一步操作:
下载cxf的包(下载地址:http://cxf.apache.org/download.html )
我下的是3.1.10版本的,然后解压一下
解压后是上面的这个包打开bin目录,里面很多的bat脚本,打开命令窗口输入wsdl2java XXXXX?wsdl(XXXX是你的webservice地址,记住要加?wsdl),确认之后,会生成几个文件。
我的接口在org下面,这里面生成的就是我们所需要的接口。然后复制到你的代码中去
现在就剩下配置了,首先包:,可能会有一到两个没有用,但是第一次弄全加上去总是没错的。剩下的就是配置了。
可以新建一个xml(为了方便,可以不新建),这是完整的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<!-- 引入CXF默认配置文件 -->
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<!--<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>-->
<!--<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />-->
<jaxws:client id="iSvcGetMess" serviceClass="org.tempuri.ISvcGetMess"
address="http://tkt.daosh.net/SvcGetMess.svc" />
</beans>
注意的是3.0以上的版本可以只用
<import resource="classpath:META-INF/cxf/cxf.xml"/>但是3.0以下的版本需要全加上。
serviceClass指的是生成的文件中的service文件在项目里面的路径,address是webservice的路径(注意这里不需要加?wsdl),到这里就已经配置好了。剩下的就是测试了
写个测试的controller,直接调用service里面的接口就能通过了,我这边现在的测试类删掉了,我就不截图了,反正按这个方法肯定是没问题的。