狼爱上狸

我胡汉三又回来了

学习Axis和web service之一

学习Axis和web service之一
web service由于工作中需要用到,所以那天从网上GOOGLE一下,查看如何制作自己的第一个WEB SERVICE。首先,web service的原理我就不多讲了,再怎么讲也不如人家讲的好,况且都是从别人那里拷贝的。还是整点实际的吧。马上建立自己的WEB SERVICE的程序。

一.首先下载安装软件:
1.axis-src-1_2_1,(自己去下载,地址忘记了)
2.jakarta-tomcat-5.0.18.exe(这个是安装版本,从别的地方拷贝也可以的)
最少也要有这两个包

二.安装
自己安装吧。挺简单的。TOMCAT安装最好改一下名字比如:TOMCAT

三.
1.将axis-src-1_2_1这个包解压后,将axis-1_2_1\webapps下axis的所有东西拷贝到你刚刚建立的TOMCAT的webapps下。目录结构如下:
tomcat-webapps-axis
然后查看一下你的axis的WEB-INF的lib下*.jar文件是否全,应该有8个
axis.jar
axis-ant.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
saaj.jar
wsdl4j-1.5.1.jar
(一定看好各个文件的文件名,一会将配置CLASSPATH)

2.然后到axis-1_2_1目录下,找到lib文件夹,拷贝其中的activation.jar文件,到
Tomcat\webapps\axis\WEB-INF\lib,和上面的8个jar文件在一起,就OK了。

四.配置classpath
我的电脑-右键属性-高级-环境变量
1.建立变量:AXIS_HOME=D:\Tomcat\webapps\axis(你自己的实际TOMCAT目录)
2.建立变量:AXIS_LIB=%AXIS_HOME%\WEB-INF\lib
建立这两个环境变量
3.classpath(相信这个变量里面肯定有值,TOMCAT安装的时候配置过)

.;%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar;
%TOMCAT_HOME%\lib;(以上三个都是安装TOMCAT配置的,下面是axis的)
%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%\wsdl4j-1.5.1.jar;
%AXIS_LIB%\activation.jar;
%AXIS_LIB%\mail.jar
拷贝到classpath里面就可以了,然后点击确定。

五.测试
这步很重要,我自己觉得,因为如果你不知道CLASSPATH是否配置齐全,所以应该测试一下,有些文章没有测试直接就往下走了,但是就出现问题了,我就出现了问题,是jar包没有导入造成的,错误信息如这样:
Exception in thread "main" java.lang.NoClassDefFoundError:

javax/wsdl/OperationType
at org.apache.axis.description.OperationDesc.<clinit>(OperationDesc.java
:58)
        at org.apache.axis.client.Call.addParameter(Call.java:948)
        at org.apache.axis.client.Call.addParameter(Call.java:983)
        at BankClient.main(BankClient.java:29)
这就是没有导入造成的错误。
其实你先看一下classpath就能避免错误。
点击开始-运行-cmd-打开命令行窗口-敲入set classpath,好了你配置的classpath完全显示了,你可以仔细的查看了。

六调试AXIS
启动TOMCAT,输入网址 http://localhost:8080/axis, 出现 "Hello! Welcome to Apache-Axis." 欢迎词, 点击链接 Validate 来验证 Axis 所需的 .jar 包是否齐全 (Needed Components).

七.开发一个 Web Service 服务端程序
(代码是转贴,谢谢!)
我的这个例子是使用 Web Service 返回一个请求字段的值.

import java.util.*;
 
public class wsTestService
{
  String strName = "Ryun";
  int intAge = 21;
  List items = new ArrayList();
  
  public String getName() {
    return strName;
   }
  
  public int getAge() {
    return intAge;
   }
  
  public List getItems() {
    return items;
   }
}将此文件命名为 wsTestService.jws 存放到
d:\tomcat\webapp\axis\下
访问 http://localhost:8080/axis/wsTestService.jws, 出现 "There is a Web

Service here"即表明 Web Service 服务端程序安装完成.
开发一个 Web Service 客户端程序
建立客户端程序wsTestClient.java
以下是客户端的源程序, 用于向 Web Service Server 提交服务请求:

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
 
public class wsTestClient {
  public static void main(String args[]) {
    System.out.println("Start invoking...");
    try {
      String strUri =

"http://localhost:8080/axis/wsTestService.jws";
      Service service = new Service();
      Call call = (Call)
      service.createCall();
      call.setTargetEndpointAddress(new

java.net.URL(strUri));
      call.setOperationName("getName");
      String ret = "" + call.invoke(new Object[] {});
      System.out.println("I am " + ret + ".");
     }
    catch (Exception e) {
      System.err.println(e.toString());
     }
    System.out.println("Finished the invoking.");
    }
}
然后编译运行,如果出现问题,那可能是环境变量path,classpath配置的问题,自己查看

一下,这里就不再描述了。
C:\>cd \
C:\>javac wsTestClient.java
 
C:\>java wsTestClient
Start invoking...
I am Ryun.
Finished the invoking.
完成,再去学习,稍后总结


来自:
http://www.cnweblog.com/battleseagull/articles/20130.html

posted on 2007-06-21 15:54 狼爱上狸 阅读(2385) 评论(0)  编辑  收藏 所属分类: AXIS


只有注册用户登录后才能发表评论。


网站导航: