2010-01-30 9 views
5

devo connettersi da un client Java ad un Servizio di WCF Web che ha la seguente vincolante:Come collegare client Java di servizio WCF utilizzando clientCredentialType = "Basic"

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

Sto usando JAX-WS. Puoi darmi un frammento di codice che mostra come impostare nome utente e password in un client Java?

Ho provato questo:

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

ma non ha funzionato. Ho anche provato questo:

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

Ancora nessun successo.

Grazie, Rafal

+0

+1 Per una domanda ben formulata e ben formattato. –

risposta

2

Oops! Scusa ...

La prima soluzione funziona, ma ho commesso un errore nella configurazione del servizio WCF. Quindi basicaly se avete problema simile stanco questo:

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

Con i migliori saluti, Rafal

+0

Che errore hai fatto nella configurazione della WCF. Sto cercando di chiamare il servizio WCF usando il client jax-ws usando lo stesso approccio, ma ottengo 401 errori non criticati, mentre lo stesso funziona tramite il client .net – Abs

Problemi correlati