1、需求
公司原来有一个项目使用的是WebService,想模拟一下怎么调用WebService的方法,使用postman调用怎么调用。
2、postman方式
接口:http://127.0.0.1:8080/SecurityWebService/SecurityCommand?wsdl
对应你的代码配置:
java
@Configuration
public class WebConfig {
@Resource
private BlocCommandReceiveService blocCommandReceiveService;
@Bean
public ServletRegistrationBean disServlet() {
// WebService访问的父路径,可以找到所有wsdl文件
return new ServletRegistrationBean(
new CXFServlet(), "/SecurityWebService/*");
}
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
return new SpringBus();
}
@Bean
public Endpoint endpoint() {
EndpointImpl endpoint = new EndpointImpl(springBus(), this.blocCommandReceiveService);
endpoint.publish("/SecurityCommand");
return endpoint;
}
}
注意:Content-Type:text/xml;charset=UTF-8 默认的要注释
接下来解析一下请求xml
xml
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="http://service.cmcc.databus.idss.com/">
<soap:Body>
<test:security_command >
<odId><![CDATA[123213213]]></odId>
<randVal><![CDATA[123213213]]></randVal>
<timeStamp><![CDATA[123213213]]></timeStamp>
<pwdHash><![CDATA[123213213]]></pwdHash>
<command><![CDATA[123213213]]></command>
<commandHash><![CDATA[123213213]]></commandHash>
<commandType><![CDATA[123213213]]></commandType>
<commandSequence><![CDATA[123213213]]></commandSequence>
<encryptAlgorithm><![CDATA[123213213]]></encryptAlgorithm>
<hashAlgorithm><![CDATA[123213213]]></hashAlgorithm>
<compressionFormat><![CDATA[123213213]]></compressionFormat>
<commandVersion><![CDATA[123213213]]></commandVersion>
</test:security_command>
</soap:Body>
</soap:Envelope>
xmlns:test: 不能少,必须是这个,参数为代码配置的targetNamespace 。
xml
targetNamespace = "http://service.cmcc.databus.idss.com/"
<test:security_command >: test不变,后面的是方法名称,你代码配置的:如果没有配置就默认方法名称。
xml
@WebMethod(operationName = "security_command")
中间的就是参数了,值必须要包住。<![CDATA[123213213]]>。
之后就可以请求了。