Tôi muốn tránh xa những thứ groovyws, nó hút. Sau khi nhìn xung quanh, cuối cùng tôi đã chọn giải pháp sử dụng dịch vụ web mùa xuân và dịch vụ web theo hợp đồng.
Máy khách sẽ khởi tạo các đối tượng lệnh bằng phương thức toXml() tạo XML yêu cầu xà phòng. Sau đó sử dụng WebServiceTemplate để sendToEndpoint.
Đối với máy chủ, chúng tôi sử dụng điểm cuối dịch vụ web mùa xuân. Phân tích cú pháp xml đến là chơi của trẻ, và bạn không cần phải sắp xếp XML thành một đối tượng, vì GPathResult kết quả từ một XmlSlurper hoàn toàn có thể quản lý được. Máy chủ của chúng tôi chạy trên đầu trang của grails, vì vậy chúng tôi đã tận dụng lợi thế của plugin plugin springws, làm cho việc tạo ra các điểm cuối dễ dàng hơn.
Mặc dù vậy, có một báo trước. Plugin springws cho grails đã lỗi thời. Dịch vụ web mùa xuân bây giờ là phiên bản 2.x và plugin springws đi kèm với 1.4.x tôi nghĩ. Tuy nhiên, nó rất dễ sử dụng mà không cần plugin, và tôi nghĩ rằng việc nâng cấp plugin lên api mới hơn là không khó.
Ngoài ra, nếu bạn muốn làm MTOM, springws sẽ phức tạp hơn một chút, bởi vì bạn cần phải đào sâu hơn vào việc xử lý thư. Tôi đã có thể thực hiện một số công cụ bảo mật khá tiên tiến với các dịch vụ web mùa xuân, tuy nhiên, không có vấn đề gì.
Nếu không, tôi sẽ sử dụng cxf (xử lý MTOM độc đáo), nếu bạn muốn gắn bó với jax-ws et al. Lạm phát có thể cao hơn, bởi vì tất cả các proxy và pojos được tạo động. Ngoài ra, nó không phải là hợp đồng hướng, đó là một lợi thế lớn đối với chúng tôi.
http://predic8.com/groovy-web-services-jax-ws.htm
http://cxf.apache.org/docs/how-do-i-develop-a-client.html
Yêu cầu của tôi cho dự án đã sinh ra câu hỏi này đã thay đổi, vì vậy tôi đã không thực sự thử các thư viện được đề xuất bởi @ john-wagenleitner nhưng câu trả lời của anh ấy dường như hoàn chỉnh nhất là câu trả lời cho câu hỏi của tôi. Cảm ơn mọi người vì câu trả lời! – matmer