Tomcat部署web服务

来源:岁月联盟 编辑:exp 时间:2011-12-15

 

一、开发前部署

如果要在tomcat下开发web服务,则必须要下载jaxws.zip,下载地址:http://jax-ws.java.net/2.2.5/

如果要创建一个web服务,则需要按照以下目录方式部署进行:

 

/

 

上图中:

lib放置jaxws.zip中的jar包;

classes放置web服务的SIB和SEI(如果是style=document,则还需要wsgen工具生成类型);

sun-jaxws.xml是web服务特定的配置文件;

 

我们这里WEBROOT假定是ws文件夹;

 

二、开发步骤

 

1.编写SEI

 

package org.xiazdong.ws; 

import javax.jws.*; 

@WebService 

public interface TempConvert{ 

    @WebMethod int f2c(int i); 

    @WebMethod int c2f(int i); 

 

 

2.编写SIB

 

package org.xiazdong.ws; 

import javax.jws.*; 

@WebService(endpointInterface="org.xiazdong.ws.TempConvert") 

 

public class TempConvertImpl implements TempConvert{ 

    public int f2c(int i){ 

        return i-5; 

    } 

    public int c2f(int i){ 

        return i+5; 

    } 

 

3.编译以上两个文件;

javac -d . *.java

 

4.通过wsgen工具生成类型

 

wsgen -cp . org.xiazdong.ws.TempConvertImpl

 

5.编写web.xml

 

<?xml version="1.0" encoding="UTF-8"?> 

 

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 

   version="2.5"> 

 

    <listener> 

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

    </listener> 

    <servlet> 

        <servlet-name>TimeServerWS</servlet-name> 

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

    </servlet> 

    <servlet-mapping> 

        <servlet-name>TimeServerWS</servlet-name> 

        <url-pattern>/ws</url-pattern> 

    </servlet-mapping> 

</web-app> 

 

6.编写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="TimeServerWS" 

     implementation="org.xiazdong.ws.TempConvertImpl" 

     url-pattern="/ws"/> 

</endpoints> 

 

 

7.把这些文件按照上图目录的排版排列;

 

最后输入http://localhost:8080/ws/ws?wsdl看是否存在wsdl,如果存在,则说明部署正确;

 

三、调用服务

 

1.使用wsimport工具

 

wsimport -keep -p client http://localhost:8080/ws/ws?wsdl

生成服务的代码;

 

2.编写调用客户端 www.2cto.com

 

 

import client.*; 

public class TimeClient{ 

    public static void main(String args[]){ 

        TempConvertImplService service = new TempConvertImplService(); 

        TempConvert c = service.getTempConvertImplPort(); 

        System.out.println(c.f2C(5)); 

    } 

 

摘自 xiaozdong