Tích hợp Java và NET sử dịch vụ web 1 Viết dịch vụ web bằng Axis và NET

Một phần của tài liệu Giáo trình Java - Chương 3 docx (Trang 25 - 28)

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

Một phần của tài liệu Giáo trình Java - Chương 3 docx (Trang 25 - 28)