一、编写webservice接口
1、编写java类,如下:
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.springframework.stereotype.Controller;
/**
* test 为接口名称 通过@WebService指定
* encrypt 为接口方法 通过@WebMethod指定
* param 为接口参数 通过@WebParam指定
* @Controller 标记该类为控制器,没有它,则接口将无法访问
*/
@WebService(serviceName = "test")
@Controller
public class TestApi{
@WebMethod
public String encrypt(@WebParam(name = "param") String param){
System.out.println(param);
return param;
}
}
2、在spring.xml配置文件中加入bean,定义接口访问路劲
<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">
<property name="baseAddress" value="http://192.168.1.100:8009/"/>
</bean>
其中ip地址改为本机IP,端口与项目端口不同。以上两步就可以开发简单的webservice接口。
二、测试接口
使用postman测试webservice接口,接口路劲为spring配置文件中的地址 + serviceName ,即:http://192.168.1.100:8009/test?wsdl
1、在postman地址栏输入接口地址,并设置Header参数:
Content-Type:text/xml;charset=UTF-8
2、body中加入参数,首先选raw,将文件类型选为xml
<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:test="http://zwfw.exter.com/">
<soap:Body>
<test:encrypt>
<param><![CDATA[ 水电费萨德4234二二wccc?@#$%^&*!_+=- ]]> </param>
</test:encrypt>
</soap:Body>
</soap:Envelope>
以上测试代码中有三个重点:
- xmlns:test=“http://zwfw.exter.com/” 此处的地址为你的namespace,默认为接口类所在的包,将其包名倒置,比如你的包名为com.baidu.www,则namespace = http://www.baidu.com。
- test:encrypt 这个标签,是上一步中的test + 接口方法名,param为接口中定义的参数名称。
- 如果在参数中有特殊符号,则使用<![CDATA[ ]]> 将参数括起来。