設置axis2的環境變量,如下圖所示:
利用axis2中的wsdl2java.bat生成客戶端程序。
先啟動Tomcat7並在IE裏運行http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl 看看服務端是否正常解析。
%AXIS2_HOME%binwsdl2java -uri http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl -paxis2.service.server -o stub
其中-uri參數指定了wsdl文件的路徑,可以是本地路徑,也可以是網絡路徑。-p參數指定了生成的Java類的包名,-o參數指定了生成的壹系列文件保存的根目錄。在執行完上面的命令後,讀者就會發現在當前目錄下多了個stub目錄,可以找到壹個HelloServiceStub.java文件,該文件復雜調用WebService,讀者可以在程序中直接使用這個類。
運行-->cmd-->具體命令如下:
要先進入axis2的bin目錄然後運行wsdl2java.bat
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:Documents and SettingsJambhala>d:
D:>cd D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>wsdl2java -uri http://l
ocalhost:8081/TestAxis2Ws/services/HelloService?wsdl -p axis2.service.server -o
stub
Using AXIS2_HOME: D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4
Using JAVA_HOME: C:Javajdk1.6.0
Retrieving document at 'http://localhost:8081/TestAxis2Ws/services/HelloService?
wsdl'.
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>
這時到axis2的bin目錄下會發現出現了壹個stub目錄,如下圖所示:
其中HelloServiceStub.java是客戶端程序,HelloServiceCallbackHandler.java是異步客戶端程序。
把這兩個類復制到上次已經建立好的服務端工程裏
註意:這個地方復制進來後會報錯的,因為在D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4binstubsrcaxis2serviceserver下的類路徑為package axis2.service.server;需要改成packageaxis2.service.client;並且需要把HelloServiceStub.java和HelloServiceCallbackHandler.java相關的報錯位置都把路徑改壹下,不要閑煩,要改的地方還滿多的呢。
創建帶main方法的StubClient.java類文件,代碼如下:
package axis2.service.domain;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import axis2.service.client.HelloServiceStub;
public class StubClient {
public static void main(String[] args) {
HelloServiceStub stub = null;
try {
stub = new HelloServiceStub();
HelloServiceStub.SayHello sh = new HelloServiceStub.SayHello();
sh.setName("於士博");
System.out.println(stub.sayHello(sh).get_return());
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}