你的位置:首页 > Java教程

[Java教程]Axis1.4框架 实现webservice服务器和客户端


一:提前准备

  1. win7旗舰版, Eclipse,JDK1.6,tomcat6.0,Axis1.4的包。 至于Axis1.4包网上可以下载,如果是在找不到可以留言给我。

二:摘要

将解压后的axis-1_4\webapps\下的axis目录考到%TOMCAT_HOME%/Webapps/目录下
启动tomcat后在浏览器里输入http://localhost:8080/axis会看到下图所示

点击上图中的Validataion链接,页面上会提示已经有的包和缺少的包的信息,根据提示将必须的包下载全,将这些类包复制到 %tomcathome%/webapps/axis/WEB-INF/lib/目录下重新启动tomcat,直到Validation页面中看不到有Error与Warning的提示信息。

Axis支持三种web service的客户端访问方式,分别为:

    • Dynamic Invocation Interface ( DII)
    • Dynamic Proxy方式
    • Stubs方式

PS:看到很多资料将上述方式列为Web Servcie的三种“部署和开发方法,个人觉得有些欠妥

下面介绍axis部署和发布web service的方式:

    • JWS  - 即时发布
    • WSDD  –定制发布

三:JWS --即时发布

 JWS(Java WebService)是最简单的一种方式。Axis允许把普通Java类的源文件的扩展名改为.jws,然后把它简单的copy到AXIS_HOME下。这样,Axis 会自动编译.jws文件,
 并把它自动加入到Java Web Servie的服务中。非常简单和灵活,但是这种方式的缺点是:只能是java源代码,同时类中不能含有包名。具体过程如下

1. 用Eclipse或者文本编辑器编写一个java类SayHello.java(此类不含包名)

 public class SayHello {   public String sayMsg(String name){     return "Hello: "+name;   } }

  2. 将上面的类(SayHello.java)copy到%tomcat_home%/webapps/axis/目录下,只需要把类的源文件(不是class)到这个目录下,重命名为:SayHello.jws

3. 打开浏览器输入:http://localhost:8080/axis/SayHello.jws 会看到:

点击上图 Click to see the WSDL 的链接,就可以看到生成的wsdl。

4. 使用 Dynamic Invocation Interface ( DII) 方式访问客户端 实现如下:

package client;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class TestClient {  /**   * @see axis框架实现简单的 webService客户端, 读webServicez服务器内容,如果有问题请留言   * @param webUrl 设置调用的wsdl路径, 即访问的路径   * @param method 设置调用的方法名   * @param parameters 设置调用的方法的参数   * @author 邓龙胜(微信simpledls)   * @throws Exception   */  public static void readerWebserviceContent(String webUrl,String method,Object[] parameters) throws Exception {        Service service = new Service();    Call call = (Call) service.createCall();    // 这里是要调用的方法名    call.setOperationName(method);    // 设置调用的wsdl路径, 即访问的路径    call.setTargetEndpointAddress(webUrl);    // parameters 是为方法传递参数, 必须和调用的方法体的参数类型和数量一致    String val = (String) call.invoke(parameters);    System.out.println("这是webservice服务器返回的信息:/n" + val);  }      /**   * @param args   * @throws Exception   */  public static void main(String[] args) throws Exception {    String webUrl = "http://192.168.1.121:8080/axis/SayHello.jws";    String method = "sayMsg";    Object[] parameters= new Object[] { "axis web service" };    TestClient.readerWebserviceContent(webUrl, method, parameters);  }}

 

四:WSDD(Web Service Deployment Descriptor)文件发布Web Service

  1. 现在很忙,过两天跟新 。。。。。