2010-01-30 12 views
5

Je dois vous connecter à partir d'un client Java à un service Web WCF qui a les suivantes configuration de liaison:Comment connecter le client Java au service WCF à l'aide clientCredentialType = "Basic"

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

J'utilise JAX-WS. Pouvez-vous me donner un extrait de code montrant comment définir le nom d'utilisateur et le mot de passe dans un client Java?

J'ai essayé:

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

mais cela n'a pas fonctionné. J'ai également essayé ceci:

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

Encore aucuns succès.

Merci, Rafal

+0

+1 Pour une question bien rédigé et bien formaté. –

Répondre

2

Oops! Désolé ...

La première solution fonctionne, mais j'ai fait une erreur dans la configuration du service WCF. Donc basiquement si vous avez le même problème fatigué ceci:

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

Meilleures salutations, Rafal

+0

Quelle erreur vous avez fait dans la configuration de WCF. J'essaie d'appeler le service WCF en utilisant le client jax-ws en utilisant la même approche, mais je reçois 401 erreur non reconnue, où les mêmes travaux à travers le client. – Abs