2010-01-30 7 views
5

Ich habe eine Verbindung von einem Java-Client zu einem WCF Web Service, die die folgenden Bindungskonfiguration verbinden:Wie Java-Client WCF-Dienst mit ClientCredentialType = "Basic"

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

Ich benutze JAX-WS. Können Sie mir einen Code-Ausschnitt geben, der zeigt, wie man Benutzernamen und Passwort in einem Java-Client einstellt?

Ich habe dies versucht:

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

aber es hat nicht funktioniert. Ich habe es auch versucht:

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

Noch kein Erfolg.

Danke, Rafal

+0

+1 Für eine gut formulierte und gut formatiert Frage. –

Antwort

2

Hoppla! Entschuldigung ...

Erste Lösung funktioniert, aber ich habe einen Fehler in der Konfiguration des WCF-Dienstes gemacht. So basicaly wenn Sie ähnliches Problem müde haben dies:

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

Mit freundlichen Grüßen, Rafal

+0

Welchen Fehler haben Sie in der WCF-Konfiguration gemacht? Ich versuche, den WCF-Dienst unter Verwendung von jax-ws-Client mit dem gleichen Ansatz aufzurufen, aber ich bekomme 401 unorthorized Fehler, wo gleiche funktioniert über .net-Client – Abs