1.使用JDK开发(1.6及以上版本)
(1)定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所有方法,如下所示:
package com.company;
import javax.jws.WebMethod;
import javax.jws.WebService;
//使用@WebService注解标注WebServiceI接口
@WebService
public interface WebServiceInter {
//使用@WebMethod注解标注WebServiceI接口中的方法
@WebMethod
String sayHello(String name);
@WebMethod
String save(String name,String pwd);
}
(2)编写interface的实现类,使用@WebService注解标注实现类,实现接口中定义的所有方法,如下所示:
package com.company;
import javax.jws.WebService;
@WebService
public class WebServiceImpl implements WebServiceInter{
@Override
public String sayHello(String name) {
System.out.println("WebService sayHello "+name);
return "sayHello "+name;
}
@Override
public String save(String name, String pwd) {
System.out.println("WebService save "+name+", "+pwd);
return "save Success";
}
}
(3)使用Endpoint(终端)类发布webservice,代码如下:
package com.company;
import javax.xml.ws.Endpoint;
public class Main {
public static void main(String[] args) {
// write your code here
String address = "http://192.168.1.138:8080/Company/WebServices";
WebServiceInter webService = new WebServiceImpl();
//使用Endpoint类提供的publish方法发布WebService,发布时要保证使用的端口号没有被其他应用程序占用
Endpoint.publish(address , webService);
System.out.println("发布webservice成功!");
}
}
运行WebServicePublish类,就可以将编写好的WebService发布好了,WebService的访问URL是:http://192.168.1.138:8080/Company/WebServices ,如下图所示:
2.通过cxf框架发布WebServices接口
(1)使用maven管理jar包,首先在maven添加使用到的cxf jar包依赖
<!--web service cxf -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.8</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.8</version>
</dependency>
(2)配置Spring-context.xml文件,WebService接口实现类同jdk发布接口一致
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
">
<bean id="webServiceInter" class="com.fh.service.WebServices.WebServiceInter" />
<jaxws:endpoint id="myService" implementor="#webServiceInter"
address="/WebServices">
</jaxws:endpoint>
(3)配置web.xml文件
<!-- 配置CXF框架的核心Servlet -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- 注解3 -->
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/Company/*</url-pattern>
</servlet-mapping>
完成上面的步骤后就可以启动Tomcat并访问