Không nhất thiết, nhưng nó thực sự là cái gì đó phụ thuộc vào việc triển khai máy chủ. ví dụ. Để truy cập vào một dịch vụ từ xa, nó đòi hỏi phải có quyền truy cập cho khách hàng tạo và tùy chọn các tài liệu WSDL và các tập tin chương trình (theo quy ước phải ở trong WEB-INF/wsdl
), do đó
public class HelloServlet extends HttpServlet {
@WebServiceRef(HelloMessengerService.class) // class with @WebServiceClient
private HelloMessenger port; // the SEI
...
}
Lớp HelloMessengerService
là còn sơ khai và có chú thích @WebServiceClient
có thuộc tính wsdlLocation
(trỏ tới tài liệu WSDL cục bộ từ xa).
Nhưng bạn có thể có một cái gì đó như thế
@WebServiceRef(wsdlLocation = "META-INF/wsdl/AnyService/Any.wsdl")
private HelloMessengerService service;
hoặc
@WebServiceRef
public HelloMessengerService service;
Nếu bạn sử dụng một chuỗi xử lý để làm thay đổi đến và đi các thông điệp SOAP:
@WebServiceRef(HelloMessengerService.class)
@HandlerChain(file="handler-chain.xml")
private HelloMessenger port;
Việc sử dụng chú thích @WebServiceRef
phải được áp dụng cho các ứng dụng khách được JAX-WS quản lý, như Servlet, EJB, o r một dịch vụ Web khác.
Nguồn
2013-03-27 17:41:15
Trong máy khách java SE, không cần thiết như: // // @ WebServiceRef (wsdlLocation = "http: // localhost: 8080/JaxWsExample/NewWebServiceService? Wsdl") \t dịch vụ NewWebServiceService tĩnh mới = newWebServiceService(); 'và nó hoạt động – ACV
Tuy nhiên trong các máy khách dựa trên servlet, nó là mandaory (và không cần phải khởi tạo dịch vụ) – ACV