- 首先获取到soap接口的wsdl地址,通过soapUI工具打开。
前提需要在配置的插件工具配置axis地址,axis-1_4可在我的资源里下载。
选择导出包的位置,生成代码。
- 将代码复制到java项目中。
- 多环境配置可在Locator中导入配置文件,将HTTP_Port_address和HTTPS_Port_address的ip地址替换即可。
在接口请求中需要用户名密码验证,可封装配置在同一个类中。
public class ERPAPI {
public static ErpWSConfig erpWSConfig;
static {
//从 Spring 容器中 获取 resTemperatureStatusService 对象
erpWSConfig = SpringContextUtil.getBean(ErpWSConfig.class);
}
public static SI_WrappingMachine_OUT_Syn erpWebServiceTest() {
try {
SI_WrappingMachine_OUT_SynServiceLocator locator = new SI_WrappingMachine_OUT_SynServiceLocator();
SI_WrappingMachine_OUT_Syn service = locator.getHTTP_Port();
apply(service);
return service;
} catch (ServiceException e) {
throw new RuntimeException(e);
}
}
public static void apply(Object stubImpl) {
Stub stub = (Stub) stubImpl;
String username = erpWSConfig.getUsername();
String password = erpWSConfig.getPassword();
if (StringUtils.notBlank(username) && StringUtils.notBlank(password)) {
stub.setUsername(username);
stub.setPassword(password);
} else {
stub.setUsername("******");
stub.setPassword("******");
}
//修改超时时间:5分钟
stub.setTimeout(300000);
}
}
- 最后可在代码中请求请求soap接口。
public R erpwsTest(@RequestParam("VBELN") String VBELN) throws Exception {
DT_WrappingMachine_Req dt_wrappingMachine_req = new DT_WrappingMachine_Req();
dt_wrappingMachine_req.setVBELN(VBELN);
DT_WrappingMachine_Resp dt_wrappingMachine_resp = ERPAPI.erpWebServiceTest().SI_WrappingMachine_OUT_Syn(dt_wrappingMachine_req);
return R.ok(dt_wrappingMachine_resp);
}