本文章具体描述下spring下webservice 接口的简单发布方式之一
- 第一步 创建一个业务逻辑 就是提供接口发布的实体类 里面写具体业务逻辑的接口
/** * Created Jay * Date 2018/10/16 */ @WebService @Controller @Transactional public class MdmApiController { //写具体业务逻辑的接口 列如: /**** * @Author:Jay * @Date:2018/10/16 * @Params:customers sap推送客户参数数据 * @Return: * @Description: sap 推送客户(经销商) 主数据 **/ public MessageResult pushSapdealerData(List<SapCustomerReqVo> customers) { //具体的业务逻辑 } }
- 第二步 创建一个通过Endpoint发布接口实体类 提供发布方法 这里我的是main方法 方便本地启动测试 也可以是其他自定义方法
package com.biz.eisp.webservice; import com.biz.eisp.webservice.sapapiservice.MdmApiController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.xml.ws.Endpoint; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; /** * Created Jay * Date 2018/7/27 */ @Service public class WSServlet { public final static Logger logger = LoggerFactory.getLogger(WSServlet.class); //通过EndPoint(端点服务)发布一个WebService public static void main(String[] args) throws UnknownHostException { /**获取本地ip地址*/ String ipPath = InetAddress.getLocalHost().getHostAddress().toString(); /**本地测试*/ Endpoint.publish("http://"+ipPath+":7088/Service/sapPushMdmData", new MdmApiController()); logger.info(" ={}","http://"+ipPath+":7088/Service/sapPushMdmData"); } }
- 第三步 创建一个随spring 项目启动类 即:项目启动边调用方法发布webservice 接口
package com.biz.eisp.webservice; import java.lang.reflect.Method; /** * Created Jay * Date 2018/10/17 */ public class RunMain { //构造方法 public RunMain() throws Exception { Class clazz = Class.forName("com.biz.eisp.webservice.WSServlet");//获取WSServlet 的class Object obj = clazz.newInstance(); //实列化WSServlet Method mainMethod = clazz.getMethod("main", String[].class);//获取名称为main 参数为String[]的方法 mainMethod.invoke(obj, (Object) new String[]{}); //调用该方法 } }
- 第四步 在spring 容器里面注入该bean
<!--webservice 接口发布类--> <bean class="com.biz.eisp.webservice.RunMain"></bean>
-
第五步 启动项目 再浏览器中输入"ipPath"+:7088/Service/sapPushMdmData ipPath为你本地的ip 会出现如下图 再点击wsdl 里的 url就是接口的ip地址