了解AXIS

了解AXIS

一、软件环境

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

 2
Tomcat5.0 

 3
JDK5.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 );
   }
}



http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)

你可能感兴趣的:(了解AXIS)