2010-01-30 52 views
5

我不得不从Java客户端连接到具有WCF Web服务 Java客户端连接到WCF服务的以下绑定配置如何使用clientCredentialType =“基本”

<basicHttpBinding> 
    <binding name="basicHttpBindingSecurity"> 
     <security mode="TransportCredentialOnly"> 
      <transport clientCredentialType="Basic"/> 
     </security> 
    </binding> 
</basicHttpBinding> 

我正在使用JAX-WS。你能给我一个代码片段展示如何在Java客户端中设置用户名和密码吗?

我已经试过这样:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext(); 
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username"); 
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password"); 

,但没有奏效。我也试过这个:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext(); 
reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://username:[email protected]:8090/MyService"); 

仍然没有成功。

感谢, 拉法尔

+0

+1对于一个良好的措辞和格式正确的问题。 – 2010-01-30 17:10:06

回答

2

糟糕!对不起......

第一个解决方案的工作原理,但我在WCF服务配置中犯了一个错误。所以basicaly,如果你有类似的问题,厌倦了这样的:

Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext(); 
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username"); 
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password"); 

最好的问候, 拉法尔

+0

你在WCF配置中犯了什么错误。我试图使用相同的方法使用jax-ws客户端调用WCF服务,但是我得到401 unathorized错误,在那里通过.net客户端工作 – Abs 2016-03-29 18:10:03