Consume a .NET Web Service with Axis2 tools
Trong bài này, chúng ta sẽ tìm hiểu cách dùng java để truy xuất đến 1 web service viết bằng C#. Ở đây ta dùng lại bài viết về cách tạo web service trên C# ở bài viết “Tạo Web service với C# step-by-step“.
Giả sử chúng ta có 1 url đến file WSDL là http://localhost:1291/ConvertWS.asmx?WSDL.
1> Tạo thư mục NETWScomsumer.
2> Đảm bảo bạn thiết lập tùy biến môi trường PATH đến %AXIS2_HOME%\bin để có thể dùng tool WSDL2JAVA và CLASSPATH đến các file JAR trong %AXIS2_HOME%\lib.
Thực thi command sau trong 1 console có đường dẫn hiện hành đến NETWScomsumer:
wsdl2java -uri http://localhost:1291/ConvertWS.asmx?WSDL |
Kết quả
| Microsoft Windows [Version 6.0.6000] Copyright (c) 2006 Microsoft Corporation. All rights reserved.D:\Bai giang Aptech\Aptech – Semester 4\XML Webservices with Java\examples\ex04_ NETWScomsumer>wsdl2java -uri http://localhost:1291/ConvertWS.asmx?WSDL Using AXIS2_HOME: c:\javaSoft\axis2-1.4\ Using JAVA_HOME: C:\jdk1.6.0_02 Retrieving document at ‘http://localhost:1291/ConvertWS.asmx?WSDL’. … |
Kết quả trong thư mục của chúng ta có 2 file mới là
- \src\org\tempuri\ConvertWSCallbackHandler.java
- \src\org\tempuri\ConvertWSStub.java
- và 1 file ant build có tên build.xml
Bây giờ chúng ta có thể viết client cho việc truy xuất web service được rồi
Trong thư mục NETWScomsumer, chạy command ant (lưu ý Ant phải được cài đặt và config) ta sẽ nhận được 2 thư mục NETWScomsumer\build\classes\org\tempuri và NETWScomsumer\build\lib
Tạo file Client.java có nội dung sau
| import org.tempuri.*; public class Client { public static void main(String[]args){ try { ConvertWSStub stub=new ConvertWSStub(); stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE); ConvertWSStub.VND2USD convert=new ConvertWSStub.VND2USD(); double dong=Double.parseDouble(tfMoney.getText()); convert.setDong(dong); ConvertWSStub.VND2USDResponse response=stub.VND2USD(convert); double result=response.getVND2USDResult(); System.out.println(“ket qua:”+result); } catch (Exception e1) { e1.printStackTrace(); } } } |
Tạo file build.bat có nội dung sau
| javac -d . *.java pause |
Thực thi file này biên dịch, đảm bảo không có lỗi nào.
Tạo file run.bat để thực thi ứng dụng có nội dung
| java Client pause |
Thực thi ứng dụng bằng cách chạy file run.bat.
Chúc thành công!
Hoang Tung said
Liệu mình có thể chạy 1 web service viết bằng .Net trên máy chủ web là apache axis2 được ko, nếu được thì cách làm là như thế nào vậy anh?
Võ Văn Hải said
Cái này mình chưa thử. Bạn nào biết thì hướng dùm.