2009-11-03 23 views
10

Tôi đã triển khai Dịch vụ JAX-WS và sử dụng wsimport để tạo mã máy khách. Vì tôi chạy wsimport trên máy chủ cục bộ, tôi nhận mã máy khách với binind trên địa chỉ "localhost".Máy khách JAX-WS "Di động"

Nhưng tôi muốn sử dụng lại mã khách hàng đó trên các máy tính khác truy cập dịch vụ được triển khai của tôi với một địa chỉ IP công cộng y.y.y.y. Cách tự động có thể sử dụng mã máy khách (một lần) được tạo để truy cập dịch vụ của tôi. (IP của dịch vụ có thể thay đổi ...)

Trả lời

13

này được bao phủ trong FAQ của JAX-WS:

Q. Làm thế nào tôi có thể thay đổi địa chỉ Web Service động cho một yêu cầu?

((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "..."); 
6

Chắc chắn. Hãy xem JBoss example. Dưới đây là đoạn mã có liên quan:

BindingProvider bp = (BindingProvider) port; 
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location"); 

Thông thường WSDL được tạo và nhà cung cấp WS chèn URL thích hợp vào WSDL.