【发布时间】:2010-09-30 19:18:21
【问题描述】:
我有一个使用 JAX-WS 开发的 Web 服务。我已经使用在 Tomcat 中配置的 BASIC 身份验证来保护 Web 服务。
当我尝试使用 Java 客户端访问 Web 服务时,我首先需要创建端口,然后指定凭据,如下所示:
CustomerServiceClient customerServiceClient = new CustomerServiceBottomUpService(); //1
CustomerService customer = customerServiceClient.getCustomerServicePort(); //2
Map<String, Object> context = ((BindingProvider) customer).getRequestContext(); //3
context.put(BindingProvider.USERNAME_PROPERTY, "kermit"); //4
context.put(BindingProvider.PASSWORD_PROPERTY, "thefrog"); //5
我遇到的问题是,在第 1 行之后,我收到了一个授权错误 (HTTP 401),因为我显然还没有向服务器提供凭据。
我正在从服务器 WSDL 创建客户端工件,因此在创建服务时会出现身份验证问题,并且不希望我的客户端将 WSDL 存储在本地,因为这对他们来说很烦人。我该如何解决这个问题?
【问题讨论】:
标签: java web-services jax-ws basic-authentication