日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载]AXIS学习笔记

發布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]AXIS学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/ronghao100/archive/2005/06/08/390530.aspx

系列:http://www.blogjava.net/RongHao/archive/2007/06/12/123644.html

前天頭告訴我用SOAP WEB服務開發一個客戶程序,用來與企業內部的ERP進行交互。晚上趕快找相關的資料猛看,總算對SOAP有了一定的認識。干程序員這行真不容易,好象得不停地學習新東西,一不小心就被淘汰:(不過學習也是個很有意思的事情。好了,廢話少說,讓我們開始吧。

一、軟件環境

?1、axis-1_2? (從apache網站下載最新axis-bin-1_2.zip解壓即可)

?2、Tomcat5.0

?3、JDK5.0

二、相關配置

?1、在你的%TOMCAT_HOME%\common\lib下需要加入三個包 activation.jar、mail.jar、tools.jar

?2、環境變量設置

???? AXIS_HOME 即axis-bin-1_2.zip解壓的目錄(我的是在F:\soap\axis-1_2)

???? AXIS_LIB????即 %AXIS_HOME%\lib

??? AXISCLASSPATH 即 %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%下所用JAR文件都導入

三、實驗一下

?? 在%AXIS_HOME%\webapps下找到axis文件夾,將其整個拷貝到%TOMCAT_HOME%\webapps下,啟動

? Tomcat,打開瀏覽器訪問http://localhost:8080/axis/,出現以下頁面說明你配置成功了。很簡單吧:)

?

四、發布我們的第一個程序

?? 第一個程序簡單的返回HELLO WORLD!

? HelloWorld.java

public class HelloWorld {
? public String sayHello()
? {
??? return "HELLO WORLD!";
? }?
}

我們的第一種發布方式:

將HelloWorld.java拷貝到%TOMCAT_HOME%\webapps\axis下,然后將其改名為HelloWorld.jws,這樣AXIS就自然將其發布了?,F在寫個客戶端程序訪問一下:

TestClient.java

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.rpc.ParameterMode;

public class TestClient
{
?? public static void main(String [] args) throws Exception {
???????
?????? String endpoint = "http://localhost/:" +"8080"+?"/axis/HelloWorld.jws";//指明服務所在位置

?????? Service? service = new Service();? //創建一個Service實例,注意是必須的!
?????? Call???? call??? = (Call) service.createCall();//創建Call實例,也是必須的!

???? call.setTargetEndpointAddress( new java.net.URL(endpoint) );//為Call設置服務的位置

??????? call.setOperationName( "sayHello" );//注意方法名與HelloWorld.java中一樣!!

???????? String res = (String) call.invoke( new Object[] {} );//返回String,沒有傳入參數

???????????????????????? System.out.println( res );
?? }
}

我的測試是在jbuilder2005中,注意項目中要導入其自帶的AXIS包(當然應該把其中JAR文件替換一下),可以看到程序返回了 "HELLO WORLD!"

可以看到在AXIS里發布服務其實是一件很容易的事,這是因為這個服務很簡單的原因:)下面我們介紹第二種發布方式,這是常用的。

我們的第二種發布方式:

1、將HelloWorld.java編譯成HelloWorld.class,放到%TOMCAT_HOME%\webapps\axis\WEB-INF\classes

????? 下

2、在%TOMCAT_HOME%\webapps\axis\WEB-INF下新建deploy.wsdd文件,即SOAP服務發布描述文件

???? deploy.wsdd

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
??? <service name="HelloWorld" provider="java:RPC">
??????? <parameter name="className" value="HelloWorld"/>
??????? <parameter name="allowedMethods" value="sayHello"/>
??? </service>
</deployment>

在DOS下轉換目錄到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令:

java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd

你會發現目錄下多了一個server-config.wsdd文件,這就是AXIS的配置文件,以后所有的服務發布描述都會在里面找到。(當然,你可以直接修改它,不用再寫deploy.wsdd)然后打開瀏覽器http://localhost:8080/axis/servlet/AxisServlet,你就會看到你的服務已發布

同樣用客戶端程序訪問一下:(注意和上邊的差別!!)

HelloClient.java

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class HelloClient
{
?? public static void main(String [] args) throws Exception {

?????? String endpoint = "http://localhost/:" +"8080"+ "/axis/services/HelloWorld";//注意!差別僅僅在這里!!

?????? Service? service = new Service();
?????? Call???? call??? = (Call) service.createCall();
?????? call.setTargetEndpointAddress( new java.net.URL(endpoint) );
??????? call.setOperationName("sayHello"? );

???????? String res = (String) call.invoke( new Object[] {} );

???????????????????????? System.out.println( res );
?? }
}

好了,相信你對AXIS已有了大致的了解。接下來將會涉及到傳參數、JAVABEAN對象,及AXIS的安全問題,下次再說吧:)也歡迎和我,一個快樂的JAVA程序員,聯系:)ronghao100@hotmail.com

總結

以上是生活随笔為你收集整理的[转载]AXIS学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。