Pregunta

Estoy desarrollando servicios web java (JAX-WS) para insertar datos en mysql DB y recuperarlos. Este servicio web tiene dos métodos, es decir, fetchFromDB e insertIntoDB. Los servicios parecen estar funcionando bien cuando los pruebo usando netbeans IDE.

Address: /CalculatorWSService
WSDL:    /CalculatorWSService?wsdl

pero cuando trato de acceder usando el objeto xmlHttpRequest de AJAX al proporcionar la url http: // localhost: 8080 / CalculatorApp / CalculatorWSService . No puede acceder a él. He desarrollado servicios web C # y ha sido muy fácil acceder a ellos con una URL, pero los servicios web de Java no parecen seguir eso.

Mi pregunta es

¿Qué url usar para acceder a las operaciones del servicio web en AJAX? (¿Necesito usar '? Wsdl' en la url? ¿Existe una biblioteca javascript ajax para acceder fácilmente a los servicios web JAX-WS? ¿Los servicios web de Apache Axis son una mejor opción que JAX-WS? Por favor, ayúdame, gracias, Jay

¿Fue útil?

Solución

Estaba teniendo el mismo problema que el tuyo, no pude invocar un servicio web Jax-ws desde Javascript, pero encontré una forma de hacerlo.

La URL a usar puede ser la misma (EndPointAddress) " http: // localhost: 8080 / CalculatorApp / CalculatorWSService "

pero cuando crea el objeto XMLHttpRequest desde javascript debe:

* Use el método POST para abrir la URL, lo intenté con GET pero no funcionó para mí.
* Establezca el encabezado de solicitud SOAPAction en el de su wsdl, incluso si está vacío " " ;.
* Tenga mucho cuidado con el cuerpo de la solicitud para enviar, el sobre de jabón debe ser correcto.

¡espero que esto pueda ayudarte!

Adiós.
Paul Manjarres.

Otros consejos

Desde la perspectiva del cliente, no esperaba diferencias significativas entre Axis y JAX-WS. Todo lo que el cliente necesita debe estar en el WSDL.

Una cosa que sucede a veces es que la URL utilizada al desarrollar un servicio web hace referencia al host y el puerto del desarrollo (y tal vez incluso al ContextRoot). Idealmente, se podría crear un nuevo WSDL con un nuevo '' enlace '' información.

Mi primer paso sería apuntar un navegador directamente al servicio web que desea invocar. En mis entornos que devuelve un agradable "Hola, este es un servicio web" tipo de mensaje Si obtiene 401 errores no encontrados, entonces solo necesita estudiar exactamente cómo se implementó el servicio web. ¿Se especificó un puerto o raíz de contexto diferente?

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