Il consumo di un webservice WCF WsHttpBinding in Java
-
16-09-2019 - |
Domanda
Sto cercando di ottenere un client Java per comunicare con un servizio Web WCF wsHttpBinding. Ma io sono in grado di farlo. La chiamata o si blocca, o ottengo "expcetions musunderstoodheader".
Il mio Web Service è solo il Visual Studio di default generato "servizio WCF Template Library".
Il mio client Web Service è solo un progetto IntelliJ vuoto, con il corrispondente stub generato utilizzando "Aggiungi servizio Web Client" (la piattaforma webservice specificato è JAX-WS 2.X).
Quando cambio il mio legame con basicHttpBinding tutto funziona alla perfezione.
Ho provato a giocare con la configurazione WsHttpBinding, tra cui lo spegnimento di sicurezza, ma non ho avuto successo.
Suggerimenti? Pensieri ? È l'WsHttpBinding solo parzialmente supportate da JAX-WS 2.0?
Soluzione
Il tuo problema è che JAX-WS non supporta gli stessi protocolli WS che sono utilizzato nella wsHttpBinding. È necessario utilizzare WSIT . WSIT è disponibile come parte della libreria Metro il , che è disponibile su Glassfish .
Mi consiglia di utilizzare wsHttpBinding o ws2007HttpBinding ove possibile, ma si può ancora fare un servizio abbastanza sicuro con basicHttpBinding su SSL / Transport Auth.
Altri suggerimenti
Vorrei esaminare attentamente la vostra configurazione WCF e rimuovere tutti authenitcation, authoraization ecc, proprietà. Ricordate, per impostazione predefinita, WCF esporrà il servizio in modo sicuro quando si utilizza un trasporto sicuro / vincolante. Pertanto, a meno che non si configura il client Java per onorare quelle esigenze di sicurezza, è molto probabile che non riescono a autenticare e non sarà possibile visualizzare i due Converse.
Una volta che hai i due a parlare, a poco a poco lavorare attraverso l'aggiunta di ciascun elemento di sicurezza fino a quando hai il tuo client Java cofigured correttamente.