2009-07-16 30 views
11

Tôi đang cố gắng để có được một khách hàng Java để giao tiếp với một WCF wshttpbinding WebService. Nhưng tôi không thể làm như vậy. Cuộc gọi hoặc bị treo, hoặc tôi nhận được "expunder".Tiêu thụ một WCF WsHttpBinding WebService trong Java

Dịch vụ web của tôi chỉ là Visual Studio mặc định được tạo "Mẫu thư viện dịch vụ WCF".

Máy khách dịch vụ web của tôi chỉ là một dự án IntelliJ trống, với cuống tương ứng được tạo bằng cách sử dụng "Thêm dịch vụ web khách hàng" (nền tảng webservice được chỉ định là JAX-WS 2.X).

Khi tôi thay đổi ràng buộc của mình thành BasicHttpBinding, mọi thứ hoạt động hoàn hảo.

Tôi đã thử chơi với cấu hình WsHttpBinding, bao gồm tắt bảo mật, nhưng tôi đã không thành công.

Đề xuất? Suy nghĩ? WsHttpBinding có được hỗ trợ một phần bởi JAX-WS 2.0 không?

Trả lời

14

Vấn đề của bạn là JAX-WS không hỗ trợ các giao thức WS giống nhau được sử dụng trong wsHttpBinding. Bạn cần sử dụng WSIT để thay thế. WSIT có sẵn trong thư viện Metro, cũng có sẵn trên Glassfish.

Tôi khuyên bạn nên sử dụng wsHttpBinding hoặc ws2007HttpBinding nếu có thể, nhưng bạn vẫn có thể thực hiện một dịch vụ khá an toàn với basicHttpBinding qua SSL/Transport Auth.

0

Tôi sẽ kiểm tra cẩn thận cấu hình WCF của bạn và xóa tất cả các authenitcation, authoraization, vv, tài sản. Hãy nhớ rằng, theo mặc định, WCF sẽ hiển thị dịch vụ của bạn một cách an toàn khi sử dụng giao thông/ràng buộc an toàn. Do đó, trừ khi bạn cấu hình máy khách Java của mình để tôn trọng các yêu cầu bảo mật đó, nó rất có thể sẽ không xác thực và bạn sẽ không thấy hai cuộc trò chuyện.

Một khi bạn có hai cuộc nói chuyện, dần dần làm việc thông qua việc thêm từng yếu tố bảo mật cho đến khi bạn có máy khách Java của bạn bị ràng buộc chính xác.

+0

Như đã nêu, tôi đã tắt TẤT CẢ bảo mật. – vicsz

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