2012-05-16 22 views
13

Tôi chỉ cần một khách hàng SOAP để thực hiện cuộc gọi từ xa, nhưng tôi là một chút của một noob Groovy. Theo số Groovy documentation, thư viện Groovy SOAP chuẩn không còn được dùng nữa. Thay vào đó, tài liệu hướng bạn đến thư viện mới hơn: GroovyWS.Thư viện SOAP tiêu chuẩn để sử dụng trong groovy là gì?

Thật không may, GroovyWS có cảnh báo cho biết dự án không hoạt động và sau đó trỏ bạn đến Groovy WSLite.

Groovy WSLite thực sự vẫn xuất hiện dưới sự phát triển tích cực, nhưng không phải là 'Groovy-ish' so với 2 thư viện trước đó. Có phải là những gì mọi người đang sử dụng không?

+0

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

Trả lời

11

Tôi nghĩ rằng bạn sẽ tìm thấy cả hai GroovyWSgroovy-wslite (và HTTP Builder) đang được sử dụng như các thư viện client Groovy SOAP trong các dự án và quyết định có lẽ là một trong số đó một làm việc và cái nào có API/tiếp cận người dùng ưa thích (trong thứ tự đó).

Lời khuyên của tôi là cung cấp cho GroovyWS một lần thử nếu bạn thích API mà nó cung cấp và khả năng ủy quyền tài liệu WSDL và xem liệu nó có hoạt động cho các dịch vụ bạn cần tương tác hay không. Mọi thứ đã không thay đổi nhiều trong thế giới SOAP vì vậy tôi sẽ không lo lắng quá nhiều về thời gian gần đây nó đã được cập nhật. Nếu nó hoạt động sau đó bạn đã làm xong, nếu bạn gặp một số vấn đề mà bạn không thể dễ dàng tìm thấy sự giúp đỡ cho sau đó tôi sẽ thử các lựa chọn thay thế.

groovy-wslite (từ chối trách nhiệm: Tôi là tác giả) nhằm cung cấp một lựa chọn nhẹ (về phụ thuộc) giao dịch thuận tiện cho phân tích/ủy quyền WSDL để giúp việc kiểm soát cuộc gọi xà phòng trở nên dễ dàng hơn đào sâu vào các bên trong của một số khung Java cơ bản như CXF. Một số thích có các tính năng bổ sung của một thư viện được xây dựng trên đầu trang của một khuôn khổ như thế này trong khi những người khác có thể thích sự đơn giản của cách tiếp cận khác.

Điều làm cho Groovy trở nên tuyệt vời như thế nào là dễ dàng tích hợp với Java. Vì vậy, như những người khác đã chỉ ra, bạn có thể tích hợp với các trình khách dịch vụ web Java như Spring WS, CXF và JAX-WS khá dễ dàng.

2

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

+0

FWIW, 4 năm sau, và di chuyển ra khỏi SOAP, tôi sẽ cung cấp cho một cú nhấp chuột xảo quyệt, cho các khách hàng dịch vụ web còn lại. Xây dựng điểm cuối máy chủ, tôi phải nghiên cứu lại trường. Hãy lấy câu trả lời của tôi trong bối cảnh năm 2012. – loteq

0

Hình như bạn đã làm bài tập ở nhà yourslef! Groovy WS Lite dường như hiện đang làm việc một. Nếu bạn muốn xem spring-ws bằng cách sử dụng Groovy, thì đây là một dự án test suite mà tôi đã tạo trong github.

Các vấn đề liên quan