我想从应用程序外部配置托管的JAX-WS客户端(注入@WebServiceRef
),最好使用WebLogic Admin Console。
例如,设置执行Web服务调用时将在HTTP请求中发送的用户名和密码以在服务器上进行身份验证。
需要明确的是,手动执行此操作需要我实施它,而使用容器提供的功能仅需要进行配置。
我能够使用SAP NetWeaver做到这一点,是否可以使用WebLogic做到这一点?
@Stateless
public class HolidayClientImpl {
// I want this dependency to be already configured, instead of doing it myself.
@WebServiceRef
private MyRemoteService myRemoteService;
}
最佳答案
经过大量搜索后,我发现WebLogic中没有此功能。它不存在,至少在10.3.6和12版本中也不存在。
这意味着您必须实现客户端配置,如下所示:
MyPort port = service.getHTTPPort();
Map<String, Object> requestContext = ((BindingProvider) port).getRequestContext();
// URL
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://www.remoteservice.com/service");
// Timeouts
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, 5000);
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, 30000);
// Authentication
requestContext.put(BindingProvider.USERNAME_PROPERTY, "user");
requestContext.put(BindingProvider.PASSWORD_PROPERTY, "password");