Domanda

Sto sviluppando servizi Web Java (JAX-WS) per inserire dati nel database mysql e recuperarli. Questo servizio Web ha due metodi: fetchFromDB e insertIntoDB. I servizi sembrano funzionare correttamente quando li collaudo utilizzando IDE netbeans.

Address: /CalculatorWSService
WSDL:    /CalculatorWSService?wsdl

ma quando provo ad accedervi usando l'oggetto xmlHttpRequest di AJAX fornendo l'URL http: // localhost: 8080 / CalculatorApp / CalculatorWSService . Non è in grado di accedervi. Ho sviluppato servizi Web C # ed è stato così facile accedervi con un URL, ma i servizi Web Java non sembrano seguirlo.

La mia domanda è

Quale URL utilizzare per accedere alle operazioni del servizio Web in AJAX? (Devo usare '? Wsdl' nell'URL? Esiste una libreria javascript ajax per accedere facilmente ai servizi Web JAX-WS? I servizi web Apache Axis sono una scelta migliore rispetto a JAX-WS? Per favore, aiutami, grazie, Jay

È stato utile?

Soluzione

Avevo lo stesso tuo problema, non riuscivo a invocare un servizio web Jax-ws da Javascript, ma ho trovato un modo per farlo.

L'URL da utilizzare può essere uguale (EndPointAddress) " http: // localhost: 8080 / CalculatorApp / CalculatorWSService "

ma quando crei l'oggetto XMLHttpRequest da javascript devi:

* Usa il metodo POST per aprire l'URL, ho provato con GET ma non ha funzionato per me.
* Imposta l'intestazione della richiesta SOAPAction su quella nel tuo wsdl, anche se è vuota " ".
* Prestare molta attenzione con il corpo della richiesta da inviare, la busta del sapone deve essere corretta.

spero che questo possa aiutarti !.

Ciao.
Paul Manjarres.

Altri suggerimenti

Dal punto di vista del cliente, non mi aspettavo differenze significative tra Axis e JAX-WS. Tutto ciò di cui il cliente ha bisogno dovrebbe essere nel WSDL.

Una cosa che a volte accade è che l'URL utilizzato durante lo sviluppo di un servizio Web fa riferimento all'host e alla porta di sviluppo (e forse anche a ContextRoot) Se distribuito su un determinato server, uno di questi potrebbe essere modificato. Idealmente, un nuovo WSDL potrebbe essere creato con una nuova "associazione" informazione.

Il mio primo passo sarebbe quello di puntare un browser direttamente sul servizio Web che si desidera richiamare. Nei miei ambienti che restituiscono un bel "ciao, questo è un servizio Web" tipo di messaggio. Se ricevi 401 errori non trovati, devi solo studiare esattamente come è stato distribuito il servizio web. È stata specificata una diversa porta o root di contesto?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top