1. Viết dịch vụ web bằng Axis và .NET
Trong phần này, chúng ta sẽ tích hợp dịch vụ web viết bằng ngôn ngữ java sử dụng thư viện Apache Axis với dịch vụ web viết bằng ngôn ngữ.NET.
Chúng ta sẽ viết 2 dịch vụ web bằng cách sử dụng thư viện Apache Axis và .NET. Sau đó chúng ta sẽ viết 2 chương trình bằng ngôn ngữ Java và .NET để sử dụng các dịch vụ web này. Dưới đây là mô hình minh họa ví dụ
Đầu tiên chúng ta sẽ viêt dịch vụ web bằng ngôn ngữ .NET
namespace CsharpService { [WebService(Namespace="net")]
public class NetService : System.Web.Services.WebService { …
[WebMethod]
public string getCSharpMessage() { return "This is message from MS .NET"; }
} }
Tiếp theo là dịch vụ web bằng ngôn ngữ Java sử dụng thư viện Apache Axis
public class Axis {
public String getAxisMessage() throws Exception { return "This is message from Apache Axis";
} }
Đổi tên tập tin thành Axis.jws, Chép nó vào thư mục G:\WebService\tomcat\webapps\axis and restart Apache Tomcat.
2. Tiếp đến chúng ta sẽ tạo các chương trình ở phía người dùng bằng ngôn ngữ Java và .NET sử dụng các dịch vụ web trên
Trước khi chúng ta viết một ứng dụng .NET dùng các dịch vụ web này thì chúng ta phải tạo WSDL để chương trình.NET có thể tham chiếu đến các dịch vụ web. Đối với dịch vụ web viết bằng Apache Axis thì chúng ta sử dụng URL:
http://localhost:8080/axis/Axis.jws?wsdl để tham chiếu đến dịch vụ web Apache Axis Và đây là mã nguồn của ứng dụng.NET sử dụng các dịch vụ web kể trên
using System;
namespace CsharpClient { class Csharp {
public CSharp() {
//Call .NET Web Service
NetRef.NetService net = new NetRef.NetService(); Console.WriteLine(net.getCSharpMessage());
AxisRef.AxisService axis = new AxisRef.AxisService(); Console.WriteLine(axis.getAxisMessage());
Console.Read(); }
CSharp cs = new CSharp(); }
} }
Với NetRef, AxisRef là các tên tham chiếu đến dịch vụ web tương ứng với các dịch vụ web viết bằng.NET và Apache Axis
Tiếp đến chúng ta sẽ viết ứng dụng Java sử dụng các dịch vụ web trên. Để gọi các dịch vụ này, chúng ta phải tạo các proxy đến các dịch vụ web này.Lệnh dưới đây dùng để tạo một proxy của java đến dịch vụ web của .NET
java org.apache.axis.wsdl.WSDL2Java
http://localhost/CSharpService/NetService.asmx?wsdl
Tiếp đến, chúng ta sẽ tạo proxy đến dịch vụ web viết bằng Apache Axis,tương tự như dịch vụ web của .NET chúng ta chỉ cần thay thế URL của dịch vụ web viết bằng .NET bằng dịch vụ viết bằng Apache Axis như sau:
java org.apache.axis.wsdl.WSDL2Java -p axis http://localhost:8080/axis/Axis.jws?wsdl Sau khi chúng ta tạo các proxy java đến các dịch vụ web này chúng ta sẽ có các thư mục chứa các lớp proxy đến các dịch vụ này có tên tương ứng là net và axis
Bây giờ chúng ta có thể viết chương trình bằng ngôn ngữ Java sử dụng các dịch vụ web trên
import axis. *; import net.*;
public class GetAllType {
public static void main(String [] args) throws Exception { //Call MS .NET
NetServiceLocator netLocator = new NetServiceLocator(); NetServiceSoap net = netLocator.getNetServiceSoap(); System.out.println(net.getCSharpMessage());
//Call Apache Axis
localhost.axis.Axis_jws.Axis axis = axisLocator.getAxis(); System.out.println(axis.getAxisMessage());
} }
III. Tài liệu tham khảo http://www.google.com.vn http://www.sun.com
http://www.apache.org http://www.deitel.com http://www.charlesrive.com