Mục lục:
- Định nghĩa dịch vụ web
- Mục đích của dịch vụ web của bạn là cho phép khách hàng từ xa truy cập các dịch vụ mà bạn cung cấp. Các dịch vụ này, được gọi là
- Trong phần này, bạn xây dựng một dịch vụ web đồng bộ bằng cách sử dụng một lớp Java thông thường và sau đó sử dụng một phiên không có trạng thái EJB. Trước tiên, bạn phải viết thành phần phụ trợ. Đây sẽ là một lớp Java, một EJB không quốc tịch, hay một người tiêu dùng phương pháp JMS.
Video: Hướng dẫn tạo Webservice trên eclipse 2025
Dịch vụ web là một thủ tục từ xa cho khách hàng thông qua TCP / IP, thường sử dụng HTTP hoặc SMTP như là vận tải và XML để mã hóa. Dịch vụ web được mô tả bằng cách sử dụng ký hiệu XML chuẩn được gọi là mô tả dịch vụ. Một dịch vụ web thực hiện một nhiệm vụ hoặc một bộ công việc.
Tất cả các chi tiết của dịch vụ web được ẩn từ người dùng, và dịch vụ là cả phần cứng và phần mềm độc lập. Điều này khuyến khích các nhà phát triển phần mềm xây dựng các ứng dụng bao gồm các dịch vụ nhỏ, cá nhân, sau đó có thể được sử dụng một mình hoặc theo nhóm để thực hiện các tác vụ phức tạp hơn.
Bạn có thể tạo một dịch vụ Web bằng hai cách: bằng tay, thông qua việc tạo nguồn Java và các tệp cấu hình, hoặc sử dụng một hệ thống GUI được gọi là WebLogic Workshop. Trong bài này, bạn tạo một dịch vụ web bằng tay.
Định nghĩa dịch vụ web
Trước khi bạn tạo dịch vụ web, bạn nên định nghĩa dịch vụ web. Điều này cho phép bạn xây dựng đúng giao diện mà các ứng dụng khác phải tuân thủ nếu họ muốn liên lạc với dịch vụ web của bạn.
Dịch vụ đồng bộ- Một
- dịch vụ web đồng bộ,
Quyết định thiết kế cơ bản nhất là < là mặc định, bắt đầu khi dịch vụ web nhận được tin nhắn. Dịch vụ web này đáp ứng ngay lập tức. Các dịch vụ web đồng bộ hữu ích nhất khi chương trình khách hàng yêu cầu dữ liệu trả lại từ yêu cầu ngay lập tức. Một ví dụ về loại dữ liệu này là báo giá cổ phiếu hiện tại cho một công ty cụ thể.
Dịch vụ webkhông đồng bộ không đồng bộ, vì vậy các thông điệp có thể được trao đổi tự do giữa khách hàng và dịch vụ web. Thông điệp từ một phía không bắt buộc người kia gửi tin nhắn tương ứng. Khi khách hàng gửi một tin nhắn đến một dịch vụ web không đồng bộ, khách hàng không chờ đợi một tin nhắn từ dịch vụ web. Dịch vụ web có thể gửi lại tin nhắn cho khách hàng sau, nhưng không có gì ràng buộc mối quan hệ này với thông điệp ban đầu mà khách hàng đã gửi. Các dịch vụ web không đồng bộ là sự lựa chọn tốt khi bạn gửi thông tin không yêu cầu phản hồi. Ví dụ: bạn có thể muốn gửi một tin nhắn đến một số máy chủ của bạn, đưa cho họ một thông báo chào mới để hiển thị cho người dùng.
Chọn và xây dựng thành phần phụ trợ
Mục đích của dịch vụ web của bạn là cho phép khách hàng từ xa truy cập các dịch vụ mà bạn cung cấp. Các dịch vụ này, được gọi là
phần tử phụ trợ, có dạng mã Java.Bạn có thể xây dựng thành phần phụ trợ như là một trong các cách sau: Phương pháp của một phiên không trạng thái EJB
- Một phương pháp của lớp Java
- Người tiêu dùng phương pháp JMS
- WebLogic có thể làm cho bất kỳ mục nào có sẵn dưới dạng một dịch vụ web. Điều này làm cho nó dễ dàng để gói mã Java hiện có như là một dịch vụ web. Nếu bạn đã tạo EJBs phiên không có trạng thái, bạn có thể gói chúng dưới dạng dịch vụ web. Hoặc nếu mã của bạn tồn tại trong các lớp Java thông thường, bạn có thể cung cấp quyền truy cập vào lớp học của bạn như là một dịch vụ web. Bạn cũng có thể sử dụng dịch vụ JMS là dịch vụ phụ trợ cho dịch vụ web của bạn.
Xây dựng một dịch vụ web đồng bộ
Trong phần này, bạn xây dựng một dịch vụ web đồng bộ bằng cách sử dụng một lớp Java thông thường và sau đó sử dụng một phiên không có trạng thái EJB. Trước tiên, bạn phải viết thành phần phụ trợ. Đây sẽ là một lớp Java, một EJB không quốc tịch, hay một người tiêu dùng phương pháp JMS.
Làm việc với thành phần phụ trợ lớp Java
Bạn phải tuân theo một vài quy tắc khi thực hiện một hoạt động dịch vụ web sử dụng một lớp Java:
Không bắt đầu bất kỳ chủ đề nào. Quy tắc này áp dụng cho tất cả mã Java chạy trên WebLogic Server.
- Xác định một constructor không có đối số mặc định.
- Xác định là công khai các phương pháp của lớp Java sẽ được phơi bày dưới dạng các hoạt động dịch vụ web.
- Bạn phải viết mã Java an toàn bởi luồng vì WebLogic Server duy trì chỉ một cá thể duy nhất của một lớp Java thực thi một hoạt động dịch vụ web và mỗi lần gọi của dịch vụ web sử dụng cùng một cá thể này.
Ví dụ về việc thực hiện hoạt động dịch vụ web WebLogic với một lớp Java, hãy chuyển đến thư mục sau:
WL_HOMEsamplesserversrcexampleswebservicesbasicjavaclass
nơi
WL_HOME đề cập đến thư mục chính của cài đặt WebLogic Server của bạn. Trên một hệ thống Windows, thư mục này thường là C: beaweblogic81. Liệt kê 1 cho thấy một lớp Java mà bạn có thể sử dụng như một thành phần phụ trợ. Lớp Java này chứa một phương thức đơn, có tên sampleMethod, chấp nhận một int và trả về một String.
Liệt kê 1: Gói Java phụ trợ lớp
package com. núm vú. ejb;
public class SampleBackendComponent
{
public String sampleMethod (int num)
{
chuyển đổi (số)
{
trường hợp 1: trả về "Một";
trường hợp 2: trả lại "Hai";
trường hợp 3: trả lại "Ba";
trường hợp 4: trả lại "Bốn";
trường hợp 5: trả lại "Năm";
trường hợp 6: trả lại "Sáu";
trường hợp 7: trả lại "Bảy";
trường hợp 8: trả lại "Tám";
trường hợp 9: trả lại "Chín";
trường hợp 10: trả lại "Mười";
mặc định: return "Some Number";
}
}
}
Làm việc với một thành phần phụ trợ EJB phiên không trạng thái
Bạn cũng có thể chọn để xây dựng thành phần phụ trợ như là một phiên làm việc không trạng thái EJB. Viết mã Java cho một phiên không có trạng thái EJB cho một dịch vụ web không khác gì viết EjB độc lập.
Trong các dịch vụ web. mô tả triển khai xml, bạn có thể chỉ định rằng một hoạt động dịch vụ web là một cách, có nghĩa là ứng dụng khách hàng gọi dịch vụ web không chờ đợi phản hồi.Khi bạn viết mã Java cho phương thức EJB thực hiện kiểu thao tác này, bạn phải chỉ định nó sẽ trả về void.
Khi chọn giữa sử dụng EJB hoặc thành phần phụ trợ lớp Java, hãy xem xét các cách khác trong đó thành phần phụ trợ của bạn sẽ được sử dụng. Nếu thành phần phụ trợ của bạn thường được truy cập như một EJB, hãy xây dựng nó như một EJB. Điều này cho phép bạn sử dụng cùng một mã cho cả EJB và dịch vụ web của bạn.
Cần nhiều tài nguyên hơn để gọi một dịch vụ web hơn là gọi EJB. Do đó, bạn nên tạo tất cả các thành phần phụ trợ của mình dưới dạng EJB và sau đó cho phép các ứng dụng bên ngoài truy cập các thành phần phụ trợ của bạn như các dịch vụ web. Các ứng dụng cục bộ của riêng bạn, đang chạy trên cùng một mạng với máy chủ WebLogic của bạn, có thể sử dụng phương thức gọi EJB nhanh hơn.
Liệt kê 2 hiển thị tệp bean thực hiện thành phần phụ trợ EJB. Thành phần phụ trợ EJB gần giống như thành phần phụ trợ lớp Java. Sự khác biệt chính là mã bổ sung được sử dụng để hỗ trợ EJB.
Liệt kê 2: Gói phần phụ trợ EJB
gói com. núm vú. ejb;
nhập javax. ejb. *;
nhập khẩu java. rmi. *;
nhập javax. lung lay. *;
public class SampleBean thực hiện SessionBean Private SessionContext stx;
// Các phương pháp bắt buộc, không được sử dụng bởi loại bean này
public void ejbCreate () {}
public void ejbRemove () {}
public void ejbActivate () {}
public void ejbPassivate () {}
// setter cho SessionContext
public void setSessionContext (SessionContext ctx)
{
ctx = this. stx;
// phương pháp mẫu
công khai Chuỗi mẫuMethod (int num)
throws
chuyển { Một";
trường hợp 2: trả lại "Hai";
trường hợp 3: trả lại "Ba";
trường hợp 4: trả lại "Bốn";
trường hợp 5: trả lại "Năm";
trường hợp 6: trả lại "Sáu";
trường hợp 7: trả lại "Bảy";
trường hợp 8: trả lại "Tám";
trường hợp 9: trả lại "Chín";
trường hợp 10: trả lại "Mười";
mặc định: return "Some Number";
}
}
}
Bạn phải xác định rằng hạt đậu là một EJB không quốc tịch trong bình ejb. tệp xml, được hiển thị trong Liệt kê 3. Bạn có thể sử dụng nhiều nút và thuộc tính.
Ví dụ 3: ejb-jar. tệp xml cho Phần phụ trợ
' // java. mặt trời. com / dtd / ejb-jar_2_0. dtd '>
SampleObject
com. núm vú. ejb. SampleHome
com. núm vú. ejb. Mẫu
com. núm vú. ejb. SampleBean
Không có quốc tịch
Container