使用JAX-WS发布web服务

服务提供者

1.添加一个服务接口

  public interface UserService {
   
    public String sayHi();
   
    public double add(double a, double b);
   
    public void addUser(UserInfo user);
   
    public List<UserInfo> getAllUsers();

  }

2.添加服务接口的实现类

  注意:该类必须添加注解:@WebService

  @WebService
  public class UserServiceImpl implements UserService {
   
    private static List<UserInfo> users = new ArrayList<UserInfo>();
   
   
    @Override
    public String sayHi() {
        return "hello webservice";
    }

    @Override
    public double add(double a, double b) {
        return a + b;
    }

    @Override
    public void addUser(UserInfo user) {
       
        users.add(user);
    }

    @Override
    public List<UserInfo> getAllUsers() {
       
        return users;
    }

  }

3.添加jax-ws相关的jar包

4.在web.xml文件中添加如下配置

  <listener> 
      <listener-class>
          com.sun.xml.ws.transport.http.servlet.WSServletContextListener 
      </listener-class>
  </listener>

  <servlet>
      <servlet-name>UserService</servlet-name> 
      <servlet-class>
          com.sun.xml.ws.transport.http.servlet.WSServlet 
      </servlet-class>
  </servlet> 
  <servlet-mapping> 
      <servlet-name>UserService</servlet-name> 
      <url-pattern>/service/userservice</url-pattern> 
  </servlet-mapping>


5.在WEB-INF目录中添加文件sun-jaxws.xml

  <?xml version="1.0" encoding="UTF-8"?>
  <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
    version="2.0">
    <endpoint name="UserService" implementation="com.baidu.shopping.webservice.UserServiceImpl"
        url-pattern="/service/userservice" />
  </endpoints>

6.将web项目部署到tomcat中即可


服务消费者

1.通过jdk自带的wsimport.exe工具生成java代码

  首先配置了JAVA_HOME环境变量
  "%JAVA_HOME%\BIN\WSIMPORT" -keep -d d:\myservice -p com.wskj.webservice.client   http://localhost:8080/website_simple/service/userservice?wsdl



使用 运行 cmd 进入../java/jdk.../bin目录
  wsimport.exe -keep -d d:\myservice -p com.wskj.webservice.client http://localhost:8080/website_simple/service/userservice?wsdl

2.将这些java代码添加到项目中

3.调用上述类的方法,即可实现对webservice的调用

猜你喜欢

转载自abao1.iteye.com/blog/2358009