写这篇文章原由是前些天有需求要调用ERP接口,但对方提供的webservice
路径通过访问生成的wsdl
文件与常见的webservice
发布的wsdl
有些许不同用hutool
的工具调用一直请求不成功
生成的wsdl大致长这样
ps: 可能先前接触的webservice接口比较少的原因 这个发布的location与targetNamespace与我印象中的完全不一样。。。
进入正题将wsdl访问路径通过Eclipse反编译可以生成java类然后通过类方法进行调用
这里的调用是个规范性写法填上对应的参数照抄就行
public Result webserviceDemo() {
DT_FI_HT_CUSTOMER_RESPITEM[] customerArray = new DT_FI_HT_CUSTOMER_RESPITEM[0];
try
{
SI_FI_HT_CUSTOMER_OUTServiceLocator sl = new SI_FI_HT_CUSTOMER_OUTServiceLocator();
SI_FI_HT_CUSTOMER_OUTBindingStub bs;
bs = (SI_FI_HT_CUSTOMER_OUTBindingStub) sl.getHTTP_Port();
// 用户名密码
bs.setUsername("******");
bs.setPassword("******");
// 表数据请求
DT_FI_HT_CUSTOMER_REQITEM[] req = new DT_FI_HT_CUSTOMER_REQITEM[1];
// 接收参数的是个数组把参数传数组里就可以了
DT_FI_HT_CUSTOMER_REQITEM req1 = new DT_FI_HT_CUSTOMER_REQITEM(
companyCode, customerName, threeCertificatesOneNum);
req[0] = req1;
// 发送请求,获取响应值
DT_FI_HT_CUSTOMER_RESP rp = bs.SI_FI_HT_CUSTOMER_OUT(req);
log.info(" 发送请求,获取响应值 ===> {} ",rp);
customerArray = rp.getITEM();
log.info(" 接收返回值 ===> {} ",customerArray);
}
catch (Exception e)
{
log.error("失败了!!!!");
e.printStackTrace();
}
return Result.succeed(customerArray);
}
Eclipse反编译生成的Java类引用一般都在方法前这种的即使不报错在SpringBoot中也是没法使用的可以像我这样注释掉或者直接去掉
引入的POM依赖与需要的JAR包
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis-wsdl4j</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
</dependency>
JAR包可以选择直接放入maven仓库然后引入或者是在对应项目下建立个lib包然后通过包路径引入,我这里是通过放到项目下引用的方式与src同级
${project.basedir} 根节点的下级节点
JAR包路径
:链接: pan.baidu.com/s/1IGrRUSoK… 提取码: 0831
<dependency>
<groupId>1</groupId>
<artifactId>axis</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/axis.jar</systemPath>
</dependency>
<dependency>
<groupId>1</groupId>
<artifactId>commons-discovery-0.2</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/commons-discovery-0.2.jar</systemPath>
</dependency>
<dependency>
<groupId>1</groupId>
<artifactId>commons-logging-1.0.4</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/commons-logging-1.0.4.jar</systemPath>
</dependency>
<dependency>
<groupId>1</groupId>
<artifactId>jaxrpc</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jaxrpc.jar</systemPath>
</dependency>
<dependency>
<groupId>1</groupId>
<artifactId>log4j-1.2.8</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/log4j-1.2.8.jar</systemPath>
</dependency>
<dependency>
<groupId>1</groupId>
<artifactId>saaj</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/saaj.jar</systemPath>
</dependency>
<dependency>
<groupId>1</groupId>
<artifactId>wsdl4j-1.5.1</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/wsdl4j-1.5.1.jar</systemPath>
</dependency>