Pregunta

Estoy tratando de conseguir un cliente Java para comunicarse con un servicio web WCF wsHttpBinding. Pero soy incapaz de hacerlo. La llamada se bloquea o bien, o me sale "expcetions musunderstoodheader".

Mi servicio web es sólo el valor predeterminado de Visual Studio genera "Servicio WCF plantilla Biblioteca".

Mi cliente de servicios Web es sólo un proyecto de IntelliJ en blanco, con el talón correspondiente generada utilizando "Agregar Web Client Service" (la plataforma de servicio web especificado es JAX-WS 2.X).

Cuando cambio mi unión a basicHttpBinding todo funciona sin problemas.

He intentado jugar con la configuración wsHttpBinding, incluyendo apagar la seguridad, pero no he tenido éxito.

Sugerencias? Pensamientos? Es la wsHttpBinding apoyada sólo parcialmente por JAX-WS 2.0?

¿Fue útil?

Solución

Su problema es que JAX-WS no es compatible con los mismos protocolos que son WS utilizado en la wsHttpBinding. Es necesario utilizar WSIT lugar. WSIT está disponible como parte de la biblioteca de la Metro , que también está disponible en Glassfish .

Le recomiendo usar wsHttpBinding o ws2007HttpBinding cuando sea posible, pero todavía se puede hacer un servicio bastante seguro con basicHttpBinding sobre SSL / Autorizar Transporte.

Otros consejos

Me gustaría examinar cuidadosamente su configuración WCF y eliminar todo authenitcation, authoraization etc., propiedades. Recuerde que, por defecto, WCF expondrá su servicio de forma segura cuando se utiliza un transporte seguro / vinculante. Por lo tanto, a menos que configure su cliente de Java para cumplir con esas exigencias de seguridad, lo más probable es que no para autenticar y no verá los dos conversan.

Una vez que tenga los dos hablar, trabajar gradualmente a través de la adición de cada elemento de seguridad hasta que tenga su cliente Java cofigured correctamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top