OK, tôi đang phát triển một chương trình sẽ được triển khai cho nhiều máy (Windows, Linux, AIX, z/Linux, openVMS, v.v.). Tôi muốn ứng dụng đó chứa một dịch vụ web SOAP, nhưng tôi không muốn bó tomcat hoặc chạy một dịch vụ riêng biệt cho các dịch vụ (tôi muốn chúng trong cùng một quá trình như phần còn lại của ứng dụng).Máy chủ dịch vụ SOAP đang hoạt động cho Java
Về cơ bản những gì tôi đang tìm kiếm là thứ mà tôi có thể xác định một lớp (ví dụ: WebServices
). Tôi đồng ý với việc viết WSDL hoặc bất kỳ loại mô tả dịch vụ nào khác. Tôi muốn một cái gì đó như thế này:
SOAPServer server = makeMeASoapServer();
//do config on the server
server.add(new WebService(...));
server.listen(port);
Rõ ràng tên và thông số sẽ khác nhau.
Tôi đã xem Axis và dường như nó cung cấp điều này, nhưng tôi không biết tôi cần sử dụng những lớp nào. Tôi có điên khùng muốn loại hành vi này không? Tôi không thể tin rằng nhiều người không tìm kiếm điều này, tôi làm điều này tất cả các thời gian với các dịch vụ web nhúng trong các máy khách .NET.
Tại sao bạn muốn thực hiện việc này? Lý do chính đáng cho SOAP là giao tiếp giữa các ứng dụng - tại sao bạn muốn ứng dụng của mình tự nói chuyện với chính nó thông qua SOAP? – skaffman
Tôi đọc nội dung này khi tải các dịch vụ khác nhau trên máy chủ cho máy khách bên ngoài để có thể gọi. Tôi vẫn làm điều đó trong một tập tin cấu hình, mặc dù, thay vì khá như thế. –
Nó rõ ràng là không nói chuyện với chính nó. Lệnh nghe sẽ làm cho nó lắng nghe trên một cổng, máy chủ sẽ chấp nhận HTTP, phân tích cú pháp XML và chuyển tiếp cuộc gọi vào phương thức đúng với các tham số và không có điều gì. Lý do tôi muốn điều này là do dịch vụ web là một phần nhỏ của ứng dụng, nhưng nó cần tương tác với phần còn lại của ứng dụng. Hơn nữa, tôi không muốn thêm 2 chương trình đang chạy khi tôi chỉ có thể thêm 1 (đặc biệt là khi họ cần giao tiếp với nhau). – tster