我是网络服务的新手,并尝试了一些教程。但是当我尝试访问 HTTPS 安全 SOAP Web 服务时,我偶然发现了巡逻。我可以使用WSDL
我的浏览器和 Netbeans 访问我从提供商那里恢复的登录名/密码。
Netbeans 生成服务/模式类(通过身份验证),我在 Glassfish 3.1.2 上运行我的客户端。我添加了一个 Servlet 来访问该服务。但我在尝试访问服务时收到 HTTP 响应代码:401 (=Unauthorized) 和WSDL
. 该服务确实连接到HTTPS
,但错误告诉HTTP
。
添加用户名/密码以访问 Web 服务的正确方法是什么?
Servlet 的服务提供者
private static LogicalModel pullpullEnterpriseService() {
pullEnterpriseService service = new pullEnterpriseService();
ClientPullSoapBinding port = service.getClientPullSoapBinding();
BindingProvider prov = ((BindingProvider)port);
prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "myuser");
prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "mypassword");
return port.getDataModel();
}
我尝试在 SOAP 标头中提供用户/密码,但结果相同
...
Map<String, Object> req_ctx = ((BindingProvider)port).getRequestContext();
Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("Username", Collections.singletonList("myuser"));
headers.put("Password", Collections.singletonList("mypassword"));
req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
...
我看过这些帖子,但它们并没有解决我的问题:
http://www.mkyong.com/webservices/jax-ws/application-authentication-with-jax-ws/