2009-07-16 21 views
11

Sto cercando di ottenere un client Java per comunicare con un servizio Web WCsh wshttpbinding. Ma non sono in grado di farlo. La chiamata o si blocca, o ottengo "expecetions musunderstoodheader".Consumo di un servizio Web WCF WsHttpBinding in Java

My Web Service è solo il predefinito Visual Studio generato "Modello libreria servizio WCF".

My Web Service Client è solo un progetto IntelliJ vuoto, con lo stub corrispondente generato utilizzando "Aggiungi client servizio Web" (la piattaforma Webservice specificata è JAX-WS 2.X).

Quando cambio l'associazione a BasicHttpBinding, tutto funziona perfettamente.

Ho provato a giocare con la configurazione WsHttpBinding, incluso lo spegnimento della sicurezza, ma non ho avuto successo.

Suggerimenti? Pensieri ? WsHttpBinding è supportato solo parzialmente da JAX-WS 2.0?

risposta

14

Il tuo problema è che JAX-WS non supporta gli stessi protocolli WS utilizzati in wsHttpBinding. Devi invece usare WSIT. WSIT è disponibile come parte della libreria Metro, che è anche disponibile su Glassfish.

Si consiglia di utilizzare wsHttpBinding o ws2007HttpBinding dove possibile, ma è comunque possibile eseguire un servizio abbastanza sicuro con basicHttpBinding su SSL/Transport Auth.

0

Vorrei esaminare attentamente la configurazione di WCF e rimuovere tutte le proprietà di authenitcation, authoraization ecc. Ricordare che, per impostazione predefinita, WCF espone il servizio in modo sicuro quando utilizza un trasporto/associazione sicuro. Pertanto, a meno che non si configuri il client Java per soddisfare tali richieste di sicurezza, molto probabilmente fallirà l'autenticazione e non vedrete i due inversi.

Una volta che avete parlato, passate gradualmente ad aggiungere ogni elemento di sicurezza fino a quando il vostro client Java non è stato configurato correttamente.

+0

Come già detto, ho già disattivato TUTTA la sicurezza. – vicsz

Problemi correlati