2009-07-16 37 views
11

Estoy intentando que un cliente Java se comunique con un WCF wshttpbinding WebService. Pero no puedo hacerlo. La llamada se cuelga o recibo "expulsaciones de encabezado de musunderstood".Consumir un WCF WsHttpBinding WebService en Java

Mi servicio web es simplemente la "Plantilla de biblioteca de servicios WCF" generada por Visual Studio por defecto.

Mi cliente de servicio web es simplemente un proyecto IntelliJ en blanco, con el apéndice correspondiente generado usando "Agregar cliente de servicio web" (la plataforma de servicio web especificada es JAX-WS 2.X).

Cuando cambio mi encuadernación a BasicHttpBinding todo funciona a la perfección.

He intentado jugar con la configuración WsHttpBinding, incluida la desactivación de la seguridad, pero no he tenido éxito.

Sugerencias? ¿Pensamientos? ¿El WsHttpBinding es solo parcialmente compatible con JAX-WS 2.0?

Respuesta

14

Su problema es que JAX-WS no es compatible con los mismos protocolos WS que se utilizan en wsHttpBinding. Necesitará usar WSIT en su lugar. WSIT está disponible como parte de la biblioteca Metro, que también está disponible en Glassfish.

Recomiendo usar wsHttpBinding o ws2007HttpBinding siempre que sea posible, pero aún puede hacer un servicio bastante seguro con basicHttpBinding sobre SSL/Transport Auth.

0

Examinaré cuidadosamente su configuración de WCF y eliminaré todas las propiedades de autenticación automática, autorrotación, etc. Recuerde, de forma predeterminada, WCF expondrá su servicio de forma segura cuando utilice un transporte/enlace seguro. Por lo tanto, a menos que configure su cliente Java para satisfacer esas demandas de seguridad, lo más probable es que no se autentique y no verá los dos converse.

Una vez que tenga las dos conversaciones, gradualmente trabaje agregando cada elemento de seguridad hasta que tenga su cliente de Java cofigurado correctamente.

+0

Como dije, ya he apagado TODA la seguridad. – vicsz

Cuestiones relacionadas