AXIS学习笔记(一)

前天头告诉我用SOAP WEB服务开发一个客户程序,用来与企业内部的ERP进行交互。晚上赶快找相关的资料猛看,总算对SOAP有了一定的认识。干程序员这行真不容易,好象得不停地学习新东西,一不小心就被淘汰:(不过学习也是个很有意思的事情。好了,废话少说,让我们开始吧。

 

一、软件环境

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

 2Tomcat5.0

 3JDK5.0

 

二、相关配置

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

 

 2、环境变量设置

 

     AXIS_HOME axis-bin-1_2.zip解压的目录(我的是在F:/soap/axis-1_2

 

     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就自然将其发布了。现在写个客户端程序访问一下:

 

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 );

   }

}

 

我的测试是在jbuilder2005中,注意项目中要导入其自带的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 );

   }

}

 

好了,相信你对AXIS已有了大致的了解。接下来将会涉及到传参数、JAVABEAN对象,及AXIS的安全问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值