學(xué)習(xí)Axis和web service之一
學(xué)習(xí)Axis和web service之一
web service由于工作中需要用到,所以那天從網(wǎng)上GOOGLE一下,查看如何制作自己的第一個(gè)WEB SERVICE。首先,web service的原理我就不多講了,再怎么講也不如人家講的好,況且都是從別人那里拷貝的。還是整點(diǎn)實(shí)際的吧。馬上建立自己的WEB SERVICE的程序。
一.首先下載安裝軟件:
1.axis-src-1_2_1,(自己去下載,地址忘記了)
2.jakarta-tomcat-5.0.18.exe(這個(gè)是安裝版本,從別的地方拷貝也可以的)
最少也要有這兩個(gè)包
二.安裝
自己安裝吧。挺簡單的。TOMCAT安裝最好改一下名字比如:TOMCAT
三.
1.將axis-src-1_2_1這個(gè)包解壓后,將axis-1_2_1\webapps下axis的所有東西拷貝到你剛剛建立的TOMCAT的webapps下。目錄結(jié)構(gòu)如下:
tomcat-webapps-axis
然后查看一下你的axis的WEB-INF的lib下*.jar文件是否全,應(yīng)該有8個(gè)
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
(一定看好各個(gè)文件的文件名,一會(huì)將配置CLASSPATH)
2.然后到axis-1_2_1目錄下,找到lib文件夾,拷貝其中的activation.jar文件,到
Tomcat\webapps\axis\WEB-INF\lib,和上面的8個(gè)jar文件在一起,就OK了。
四.配置classpath
我的電腦-右鍵屬性-高級-環(huán)境變量
1.建立變量:AXIS_HOME=D:\Tomcat\webapps\axis(你自己的實(shí)際TOMCAT目錄)
2.建立變量:AXIS_LIB=%AXIS_HOME%\WEB-INF\lib
建立這兩個(gè)環(huán)境變量
3.classpath(相信這個(gè)變量里面肯定有值,TOMCAT安裝的時(shí)候配置過)
.;%JAVA_HOME%\lib\dt.jar;
%JAVA_HOME%\lib\tools.jar;
%TOMCAT_HOME%\lib;(以上三個(gè)都是安裝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里面就可以了,然后點(diǎn)擊確定。
五.測試
這步很重要,我自己覺得,因?yàn)槿绻悴恢繡LASSPATH是否配置齊全,所以應(yīng)該測試一下,有些文章沒有測試直接就往下走了,但是就出現(xiàn)問題了,我就出現(xiàn)了問題,是jar包沒有導(dǎo)入造成的,錯(cuò)誤信息如這樣:
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)
這就是沒有導(dǎo)入造成的錯(cuò)誤。
其實(shí)你先看一下classpath就能避免錯(cuò)誤。
點(diǎn)擊開始-運(yùn)行-cmd-打開命令行窗口-敲入set classpath,好了你配置的classpath完全顯示了,你可以仔細(xì)的查看了。
六調(diào)試AXIS
啟動(dòng)TOMCAT,輸入網(wǎng)址 http://localhost:8080/axis, 出現(xiàn) "Hello! Welcome to Apache-Axis." 歡迎詞, 點(diǎn)擊鏈接 Validate 來驗(yàn)證 Axis 所需的 .jar 包是否齊全 (Needed Components).
七.開發(fā)一個(gè) Web Service 服務(wù)端程序
(代碼是轉(zhuǎn)貼,謝謝!)
我的這個(gè)例子是使用 Web Service 返回一個(gè)請求字段的值.
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, 出現(xiàn) "There is a Web
Service here"即表明 Web Service 服務(wù)端程序安裝完成.
開發(fā)一個(gè) Web Service 客戶端程序
建立客戶端程序wsTestClient.java
以下是客戶端的源程序, 用于向 Web Service Server 提交服務(wù)請求:
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.");
}
}
然后編譯運(yùn)行,如果出現(xiàn)問題,那可能是環(huán)境變量path,classpath配置的問題,自己查看
一下,這里就不再描述了。
C:\>cd \
C:\>javac wsTestClient.java
C:\>java wsTestClient
Start invoking...
I am Ryun.
Finished the invoking.
完成,再去學(xué)習(xí),稍后總結(jié)
來自:
http://www.cnweblog.com/battleseagull/articles/20130.html
posted on 2007-06-21 15:54 狼愛上貍 閱讀(2391) 評論(0) 編輯 收藏 所屬分類: AXIS