zoukankan      html  css  js  c++  java
  • axis初级使用

    一、软件环境

     1、axis-1_4 (从apache网站下载最新axis-bin-1_4.zip解压即可)

     2、Tomcat5.0

     3、JDK5.0

    二、相关配置

     1、在你的%TOMCAT_HOME%/common/lib下需要加入三个包 activation.jar、mail.jar、tools.jar

     2、环境变量设置

         AXIS_HOME 即axis-bin-1_4.zip解压的目录(我的是在F:/axis-1_4)

         AXIS_LIB    即 %AXIS_HOME%/lib

        AXISCLASSPATH 即 %AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar;也就是把%AXIS_LIB%下所用JAR文件都导入

    三、实验一下

       在%AXIS_HOME%/webapps下找到axis文件夹,将其整个拷贝到%TOMCAT_HOME%/webapps下,启动

      Tomcat,打开浏览器访问http://localhost:8080/axis/,出现以下页面说明你配置成功了。很简单吧:)


    四、发布我们的第一个程序

       第一个程序简单的返回HELLO WORLD!

      HelloWorld.java

    public class HelloWorld {
      public String sayHello()
      {
        return "HELLO WORLD!";
      }
    }

    我们的第一种发布方式:

    将HelloWorld.java拷贝到%TOMCAT_HOME%/webapps/axis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了。

    注意HelloWorld.java  如果 package com 有包开头的 应该将包与文件一起放入axis文件夹

    现在写个客户端程序访问一下:

    TestClient.java

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;

    import javax.xml.rpc.ParameterMode;

    public class TestClient
    {
       public static void main(String [] args) throws Exception {
          
           String endpoint = "http://localhost:" +"8080"+ "/axis/HelloWorld.jws";//指明服务所在位置

           Service  service = new Service();  //创建一个Service实例,注意是必须的!
           Call     call    = (Call) service.createCall();//创建Call实例,也是必须的!

         call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置

            call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!!

             String res = (String) call.invoke( new Object[] {} );//返回String,没有传入参数

                             System.out.println( res );
       }
    }

    我的测试是在eclipse中,注意项目中要导入其自带的AXIS包(当然应该把其中JAR文件替换一下),可以看到程序返回了 "HELLO WORLD!"

    可以看到在AXIS里发布服务其实是一件很容易的事,这是因为这个服务很简单的原因:)下面我们介绍第二种发布方式,这是常用的。

    我们的第二种发布方式:

    1、将HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%/webapps/axis/WEB-INF/classes

          下

    2、在%TOMCAT_HOME%/webapps/axis/WEB-INF下新建deploy.wsdd文件,即SOAP服务发布描述文件

         deploy.wsdd

    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
        <service name="HelloWorld" provider="java:RPC">
            <parameter name="className" value="HelloWorld"/>
            <parameter name="allowedMethods" value="sayHello"/>
        </service>
    </deployment>

    在DOS下转换目录到%TOMCAT_HOME%/webapps/axis/WEB-INF,命令:

    java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd

    你会发现目录下多了一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(当然,你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,你就会看到你的服务已发布

    同样用客户端程序访问一下:(注意和上边的差别!!)

    HelloClient.java

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;

    public class HelloClient
    {
       public static void main(String [] args) throws Exception {

           String endpoint = "http://localhost:" +"8080"+ "/axis/services/HelloWorld";//注意!差别仅仅在这里!!

           Service  service = new Service();
           Call     call    = (Call) service.createCall();
           call.setTargetEndpointAddress( new java.net.URL(endpoint) );
            call.setOperationName("sayHello"  );

             String res = (String) call.invoke( new Object[] {} );

                             System.out.println( res );
       }
    }

  • 相关阅读:
    03-django模型(1)
    Django02 Django基础知识
    jquery
    Django01 web http 基础
    Python之协程
    Python之线程
    进程 操作
    CSS
    UVALive-3268 Jamie's Contact Groups (最大流,网络流建模)
    UVA-10806 Dijkstra, Dijkstra. (最小费用流,网络流建模)
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9332026.html
Copyright © 2011-2022 走看看