跟我学WEBSERVICE(二)

跟我学WEBSERVICE(二)

AXIS 开发 WEBSERVICE 的两种部署方式的简单介绍

WEBSERVICE 有两种部署方式: SOAP Endpoint JWS Endpoint

JWS endpoint 的部署方式是一中最简单的部署方式

1.   写一个服务端程序:

/**

 * 该服务是输入你的名字和性别,然后返回信息。

 */

public class HelloServicesForJws {

    /**

     *

     * @param name your name

     * @param sex if you are a man then the sex==true;otherwise sex==false

     * @return

     */

    public String echoString(String name,boolean sex) {

        if(sex) {

            return "Hello Mr "+name+"! Welcome to WebService Word!";

        } else {

            return "Hello Mrs "+name+"! Welcome to WebService Word!";

        }

    }

}

2.   TOMCAT 上以 JWS 的形式部署该服务:将这个文件( HelloServicesForJws.java )拷贝到 webapps/ axis/ 目录下,并把这个文件的名字改为 HelloServicesForJws.jws 。这个文件可以拷贝到 webapps/ axis/ 的任意目录下,但是,不要放在 WEB-INF 子目录下。

3.   启动 TOMCAT ,测试部署成功与否。访问地址是:

如果 HelloServicesForJws.jws 直接放在 webapps/ axis/ 目录下用 http://localhost:8080/axis/HelloServicesForJws.jws

如在其他的目录 (training) 下用: http://localhost:8080/axis/training/HelloServicesForJws.jws

4.   如果测试成功,我们可以在 jwsClasses 目录下可以看到 HelloServicesForJws.class 文件。

5.   注意:当以这种形式部署的时候, JAVA 文件不能放在一个包里面。

 

SOAP Endpoint 部署方式:

1.   同样我们一上面的程序为列,但是,我门下面的一个包中,文件名也稍微改一下。如下所示:

package com.unimas.datacollection.webservices.training;

public class HelloServicewsForSoap {

    /**

     * @param name your name

     * @param sex if you are a man then the sex==true;otherwise sex==false

     * @return

     */

    public String echoString(String name,boolean sex) {

        if(sex) {

            return "Hello Mr "+name+"! Welcome to WebService Word!";

        } else {

            return "Hello Mrs "+name+"! Welcome to WebService Word!";

        }

    }

}

2.   然后将这个文件打成一个包: training.jar

3.   将这个包拷贝到 WEB-INF/lib 目录下。

4.   修改文件 Server-config.wsdd 。在文件中添加下列内容:

 <service name="HelloServices" provider="java:RPC">

<parameter name="allowedMethods" value="*"/>

<parameter name="className" value="com.unimas.datacollection.webservices.training.HelloServicewsForSoap"/>

</service>

我们也可以不用手工来修改 Server-config.wsdd 。我们可以使用 AdminClient 工具在 Server-config.wsdd 文件中轻松的部署上我们需要的服务,或是停止某一个服务。步骤如下:

1.   新建文件: deploy_helloService.wsdd ,和 undeploy_helloService.wsdd 。文件内容如下:

Deploy-helloservices.wsdd 内容:

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

    <service name="HelloServices" provider="java:RPC">

        <parameter name="allowedMethods" value="*"/>

        <parameter name="className" value="com.unimas.datacollection.webservices.training.HelloServicewsForSoap"/>

    </service>

</deployment>

undeploy-helloservices.wsdd 内容:

<undeployment name="test" xmlns="http://xml.apache.org/axis/wsdd/">

  <service name="HelloServices"/>

</undeployment>

2.   运行 AdminClient.main(new String[]{deployFile}); 可以部署或是停止服务。

5.   启动 TOMCAT

6.   IE 访问测试: http://localhost:8080/axis/services/ HelloServices

以下列地址访问 WSDL 文件: http://localhost:8080/axis/services/ HelloServices wsdl

 

Service Styles

AXIS 有四种 service styles ,分别是: RPC, Document, Wrapped, and Message 。最常用的就是 RPC Message

RPC AXIS 中是一个默认选项。当你部署的时候使用下列两种方式: <service ... provider="java:RPC"> 或则 <service ... style="RPC">,它遵循SOAP RPC和编码规则,就是说它的WSDL文件形式就想上面所说的 HelloServicewsForSoap echoString 一样。每个 RPC 都包括一个表示名称的外部接点和一些表示参数的内部接点。 AXIS 会根据规则将一个 XML WSDL 文件)文件转化成一个 JAVA 对象,并对对想赋上在文件中描述的值。也可以根据规则将一个 JAVA 对象转化成 XML 文件。

Document

以下列方式部署: <service ... style="document"><service ... style="document"> 。适合于老的XML schema

Wrapped

以下列方式部署: <service ... style="wrapped"><service ... style="wrapped"> DOCUMENT一样,适合于老的XML schema

在大多书情况下,你不许要担心是DOCUMENT服务还是WRAPPED服务。

Message

以下列方式部署: <service name="MessageService" style="message"> 。以这种方式部署的话,会是AXIS失去意义,它使你的代码真正的用XML形式,而不需要转化成JAVA对象。以这种方式部署的有以下四种服务方法:

public Element [] method(Element [] bodies);

public SOAPBodyElement [] method (SOAPBodyElement [] bodies);

public Document method(Document body);

public void method(SOAPEnvelope req, SOAPEnvelope resp);

 


你可能感兴趣的:(跟我学WEBSERVICE(二))