從今天開始我將學(xué)習(xí)axis的經(jīng)驗(yàn)以筆記的形式共享給大家希望能對大家的工作有所幫助。
相信大家對webservice有一定的了解我在這里就不再復(fù)述webservice的一些基本概念。
axis1.3是soap1.2協(xié)議的一個(gè)實(shí)現(xiàn)框架。在工作中我們可以方便的通過axis進(jìn)行webservice的開發(fā)。
廢話少說,我們開始安裝axis.
我們可以從axis的官方網(wǎng)站上下載(http://ws.apache.org/axis/).解壓縮axis-bin-1_3.zip。在lib中包含axis必須使用的jar包。docs中包含axis的文檔,通常使用用戶指南就可以解決大部分問題。samples中包含很多webservice的例子,以后會(huì)對這些例子進(jìn)行進(jìn)一步講解。webapps文件夾中包含了一個(gè)axis web application你可以直接把他部署到tomcat中,然后在這個(gè)axis應(yīng)用上發(fā)布你的webservice,發(fā)布成功后就可以調(diào)用了。build文件夾用來存放用ant編譯的axis安裝包的classes文件。
第一個(gè)步驟:安裝axis.( Axis 1.3,tomcat 5.028, jdk 1.42)
copy axis-bin-1_3安裝包下webapps文件夾中的axis目錄到tomcat的webapps下發(fā)布你的axis應(yīng)用。重新啟動(dòng)tomcat.訪問http://localhost:8080/axis 。這時(shí)就會(huì)出現(xiàn)axis的歡迎畫面.進(jìn)入Validation鏈接以檢查axis所使用的jar包是否全都存在。如果不存在就會(huì)顯示一下畫面:
我們可以根據(jù)鏈接下載axis缺少的jar文件,下載之后copy到tomcat\webapps\myaxis\WEB-INF\lib下即可。一般情況下還會(huì)有一些warning消息,里面列出的的選項(xiàng)不是必須存在的jar包。當(dāng)所有必須的jar文件全部安裝完畢,則會(huì)出現(xiàn)以下畫面。
表示axis已經(jīng)具備所有需要的jar文件!
第二步驟:測試axis。
在測試axis之前我們需要一些準(zhǔn)備工作。我們首先要把axis用到的jar包添加到CLASSPATH環(huán)境變量中去。如下:
C:\tomcat5\webapps\axis\WEB-INF\lib\axis.jar;
C:\tomcat5\webapps\axis\WEB-INF\lib\jaxrpc.jar;
C:\tomcat5\webapps\axis\WEB-INF\lib\saaj.jar;
C:\tomcat5\webapps\axis\WEB-INF\lib\commons-discovery-0.2.jar;
C:\tomcat5\webapps\axis\WEB-INF\lib\commons-logging-1.0.4.jar;
C:\tomcat5\webapps\axis\WEB-INF\lib\wsdl4j-1.5.1.jar;
C:\tomcat5\webapps\axis\WEB-INF\lib\activation.jar;
C:\tomcat5\webapps\axis\WEB-INF\lib\mail.jar
注意路徑是根據(jù)自己部屬情況而定,上面的只是參考。
我們通過JWS (Java Web Service)文件的方式來發(fā)布一個(gè)webservice。首先在安裝包的axis-bin-1_3\axis-1_3\samples\userguide\example2目錄下找到Calculator .java文件,將其改名為Calculator .jws然后copy到tomcat的webapps/axis/下。發(fā)布這個(gè)webservice。這個(gè)webservice提供了兩個(gè)功能即加減功能。
Webservice code:
public class Calculator {
public int add(int i1, int i2)
{
return i1 + i2;
}
public int subtract(int i1, int i2)
{
return i1 - i2;
}
}
Client code:
package samples.userguide.example2 ;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
import javax.xml.rpc.ParameterMode;
public class CalcClient
{
public static void main(String [] args) throws Exception {
Options options = new Options(args);
String endpoint = "http://localhost:" + options.getPort() +
"/axis/Calculator.jws";
args = options.getRemainingArgs();
if (args == null || args.length != 3) {
System.err.println("Usage: CalcClient arg1 arg2");
return;
}
String method = args[0];
if (!(method.equals("add") || method.equals("subtract"))) {
System.err.println("Usage: CalcClient arg1 arg2");
return;
}
Integer i1 = new Integer(args[1]);
Integer i2 = new Integer(args[2]);
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( method );
call.addParameter( "op1", XMLType.XSD_INT, ParameterMode.IN );
call.addParameter( "op2", XMLType.XSD_INT, ParameterMode.IN );
call.setReturnType( XMLType.XSD_INT );
Integer ret = (Integer) call.invoke( new Object [] { i1, i2 });
System.out.println("Got result : " + ret);
}
}
下面我們來進(jìn)行調(diào)用。首先進(jìn)入客戶端源代碼所在位置,也可以將源代碼所在目錄添加到classpath中
(C:\Documents and Settings\y41yang\Desktop\software\axis-bin-1_3\axis-1_3;):
然后輸入java samples.userguide.example2.CalcClient -p8080 add 2 5
這時(shí)如果結(jié)果為Got result : 7 則說明axis安裝成功!如果失敗了請檢查classpath設(shè)置,
是否將所有用到的jar文件加入classpath中。到這里axis就已經(jīng)安裝成功了!
后面我會(huì)進(jìn)一步詳細(xì)講解有關(guān)通過wsdd部署webservice的方式。
由于時(shí)間比較倉促有很多的解釋不清地方,如果有什么不明白可以給我回復(fù),我會(huì)盡快答復(fù)!
安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢】