當前位置:編程學習大全網 - 源碼下載 - 問個比較弱的問題,我剛接觸webservice ,axis和axis2 有什麽區別啊?

問個比較弱的問題,我剛接觸webservice ,axis和axis2 有什麽區別啊?

Axis全稱Apache eXtensible Interaction System,是apache組織下的壹個開源項目,用來做webservice開發的,有java版的實現,也有c++版的實現,其前身最早是IBM的SOAP4J,後來捐給Apache後改名Apache SOAP,也就是支持SOAP1.1的那個版本,到現在的AXIS已經是第三代了,AXIS對Apache SOAP的改進有很多,比如用SAX代替以前的DOM,增加對WSDL的支持,支持SOAP1.2等等

使用axis很easy,在apache網站上把axis下載了後(最新版本1.2.1),把%AXIS_HOME%\webapps\axis整個目錄copy到tomcat的webapps目錄下面,啟動tomcat,瀏覽器中輸入http://localhost:8080/axis就可以了

上面說的只是axis運行起來了,要想布置自己的webservice,axis支持兩種方法:壹種是用JWS(Java Web Service),好處是只要有源碼比如說Hello.java,把他改成Hello.jws後放到%TOMCAT_HOME%\webapps\axis目錄下面就搞定,瀏覽器裏面輸入http://localhost:8080/axis/Hello.jws就可以了,不足的地方是能配置的地方有限(比如說Hello.java裏面的所有public非static方法都會暴露),很多東西沒辦法弄;第二種方法就是使用wsdd(web service deploy description),這個就是在TOMCAT_HOME%\webapps\axis\WEB-INF目錄下寫壹個deploy.wsdd和undeploy.wsdd文件,然後通過java org.apache.axis.client.AdminClient deploy.wsdd就搞定了,卸載這個webservice就用org.apache.axis.client.AdminClient undeploy.wsdd,客戶端輸入http://localhost:8080/axis/services/Hello就可以了

介紹了部署webservice的兩種方法後,下面說說客戶端的訪問方式,也有兩種,壹種是通過axis實現的java裏面的JAX-RPC進行動態調用,另外壹種就是通過服務器端產生的wsdl文件利用WSDL2Java工具生成Client Stub後訪問。通過JAX-RPC的比較簡單,需要提供的有SOAP router URL,service namespace,operation name,operation parameter types,operation return types,看看下面這個例子就明白了:

public SOAPWrapper() {

String location = "http://localhost:8080/axis/services/BookService";

try {

Service service = new Service();

call = (Call)service.createCall();

call.setTargetEndpointAddress(new url(/location));

} catch (Throwable t) {

handleError("SOAPWrapper (constructor) had an Exception.",t);

}

} public void create(Book book) {

try {

call.removeAllParameters();

call.setOperationName("create");

call.addParameter("arg1",qn,ParameterMode.IN);

call.setReturnType(XMLType.AXIS_VOID);

call.invoke(new Object[] {book});

return;

} catch (Throwable t) {

handleError("SOAPWrapper (create) had an Exception.",t);

return;

}

}

程序中的Call和Service是對JAX-RPC中Call和Service的具體實現:org.apache.axis.client.Call implements javax.xml.rpc.Call,org.apache.axis.client.Service implements javax.xml.rpc.Service

第二種客戶端的方法就是利用WSDL2Java產生Client stub後通過stub調用,WSDL2Java的操作對象是service所對應的wsdl文件,這個文件怎麽產生呢?壹種方法前面是由axis自動產生,如前面服務器端的配置所說,無論通過jws或是wsdd的方式,axis都會產生相應的wsdl;還有壹種方式就是利用Java2WSDL對java源文件進行操作也可以產生相應的wsdl文件。

  • 上一篇:查找數字雨源代碼或動態
  • 下一篇:Fota源代碼
  • copyright 2024編程學習大全網