web services 入门:献给所有好学的新手
antzl 2005-04-22 05:16:40 本文给出web services的一个简单的例子介绍:
一、 环境配置说明
1、首先,安装JDK 1.4.2
2、安装Tomcat5于G:\Program Files\Apache Software Foundation\Tomcat 5.0 端口:8081
3、下载开源项目Axis,将axis-1_1-src.jar 解压缩到当前目录,将\axis-1_1\webapps\目录中的文件夹axis拷贝到G:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\目录下。
4、设置classpath:
首先如下添加环境变量:
AXIS_HOME=G:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\axis
AXIS_LIB=%AXIS_HOME%\WEB-INF\lib
然后在环境变量classpath中添加:
%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar;
%AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar
二:程序及编译说明
1、首先,在G:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\axis\目录下,创建一个文件夹:zl_homework3
2、在上述文件夹中,编写服务器端程序BankServer.java,客户端程序BankClient.java,完成后,编译BankServer.java、BankClient.java。(源程序见后文)
3、创建服务发布描述文件deploy.wsdd。(见后文)
4、启动tomcat服务器,然后可以采用Axis提供的一个客户端管理工具——AdminClient来完成服务的定制发布,新建一个dos窗口,进入当前目录G:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\axis\zl_homework3,输入命令,
格式如下:
java org.apache.axis.client.AdminClient -lhttp://localhost:8081/axis/services/AdminService deploy.wsdd
可以看到以下运行结果:
Processing file deploy.wsdd
<Admin>Doneprocessing</Admin>
这表明Capacity服务定制发布完成。
5将BankServer.class文件拷贝到G:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\axis\WEB-INF\classes目录中。
6重新启动服务器,通过访问http://localhost:8081/axis/services/BankServer?wsdl可以看到这个服务的WSDL描述文件,这说明BankServer服务被成功发布了。
7运行客户端程序,新建一个dos窗口,进入当前目录G:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\axis\zl_homework3,输入命令,
格式如下:
java BankClient
则可显示运行结果。
////////////////////////////////////////////////////////////////////////////////////
/*
BankServer.java
*/
import java.io.*;
public class BankServer
{
double total=0.0;
public double deposite(double dep)
{
try{
//定义一个BufferdReader对象,用于读取文件
BufferedReader br = new BufferedReader(new FileReader("G:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\axis\\zl_homework3\\bank.txt"));
String line="";
//将读取的字符串赋值给line
line = br.readLine();
//将line中的字符串转化为Double型数据
total=Double.parseDouble(line);
//进行存款操作
total=total+dep;
//将total转化为字符串后,赋给line
line=String.valueOf(total);
//定义一个BufferedWriter对象,用于写文件
BufferedWriter bw = new BufferedWriter(new FileWriter("G:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\axis\\zl_homework3\\bank.txt",false));
//将结果写于文件中
bw.write(line);
bw.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
return total;
}
public double withdraw(double wit)
{
try{
//定义一个BufferdReader对象,用于读取文件
BufferedReader br = new BufferedReader(new FileReader("G:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\axis\\zl_homework3\\bank.txt"));
String line="";
//将读取的字符串赋值给line
line = br.readLine();
//将line中的字符串转化为Double型数据
total=Double.parseDouble(line);
//进行取款操作
total=total-wit;
//将total转化为字符串后,赋给line
line=String.valueOf(total);
//定义一个BufferedWriter对象,用于写文件
BufferedWriter bw = new BufferedWriter(new FileWriter("G:\\Program Files\\Apache Software Foundation\\Tomcat 5.0\\webapps\\axis\\zl_homework3\\bank.txt",false));
//将结果写于文件中
bw.write(line);
bw.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
return total;
}
public static void main(String args[])
{
BankServer bs=new BankServer();
double result=0.0;
result=bs.deposite(1000);
System.out.println(result);
result=bs.withdraw(2000);
System.out.println(result);
}
}