微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService学习之旅二JAX-WS基于Web容器发布WebService

在上节中我们定义Web服务接口和实现类后,调用Endpoint类的静态方法publish发布来webservice,这种方法使用起来虽然简单,但是对于一个企业级应用来说通常对外提供的服务可能不止一个,如果每个WebService都去编写一个main方法显然不合适,不利于Web服务的集中管理,而且不方便WebService与Web应用整合。
所以绝大多数情况下都会使用Web容器集中管理WebService,本文將向大家介绍如何使用JAX-WS基于Web应用服务器来发布WebService。

一、准备工作
1.获取JAX-WS所需所有jar包,如下图所示

这里写图片描述

所有jar包下载地址:
http://download.csdn.net/detail/rongbo_j/9471877
2.打开Eclipse,新建一个web工程,將上节中的WebService接口和实现类拷贝到src目录下。
HelloWorld .java

package com.csdn.jaxws.recipe01;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.soAPBinding;
import javax.jws.soap.soAPBinding.Style;
import javax.jws.soap.soAPBinding.Use;

@WebService
@SOAPBinding(style = Style.DOCUMENT,use=Use.LIteraL)
public interface HelloWorld {
    @WebMethod
    String sayHello(String text);
}

HelloWorldImpl.java

package com.csdn.jaxws.recipe01;

import javax.jws.WebService;

@WebService(endpointInterface = "com.csdn.jaxws.recipe01.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

    @Override
    public String sayHello(String name) {
        return "hello," + name;
    }

}

3.將上面的jar包添加的classpath中,并发布到WEB-INF/lib目录下,接着在WEB-INF/web.xml文件中,添加如下内容

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

    <servlet>
        <servlet-name>WSServlet</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>WSServlet</servlet-name>
        <url-pattern>/service/*</url-pattern>
    </servlet-mapping>

以/service/*结尾的Http请求会经过WSServlet处理,生成WebService及WSDL文档。
4.接下来在WEB-INF目录下新建sun-jaxws.xml文件,配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime">

    <endpoint name="HelloWorld" implementation="com.csdn.jaxws.recipe01.HelloWorldImpl" url-pattern="/service/HelloWorldService" />

</endpoints>

5.使用jdk自带工具wsgen,生成webservice工具类,使用方法如下:
打开控制台进入工程根目录下的build\classes目录,输入命名

wsgen -keep -cp . com.csdn.jaxws.recipe01.HelloWorldImpl

生成的类拷贝到jaxws子包下
6.完整的工程结果如下图所示:

这里写图片描述

7.將应用部署到tomcat中,并启动web服务器,打开浏览器访问:http://localhost:8080/jax-recipe02/service/HelloWorldService?wsdl

这里写图片描述

8.客户端调用代码请参考上节示例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐