Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

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 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!

2 Responses to “Consume a .NET Web Service with Axis2 tools”

  1. 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?

  2. 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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: