During my autumnal experience working with Spring on a e-commerce service library,
I had to implement a Web Service client to interface a popular italian payment gateway.
I found a useful and clear article (in Italian) that explains how to create
Web Service client directly from an Eclipse* wizard:
“Web Services for dummies: creare un servizio web SOAP per Tomcat – il Consumer“;
you need only your service’s WSDL URL and wizard will generate Java classes
that you can use as Web Service client.
While building this solution some errors occurred, so here are the solutions…
1) “IWAB0503E Unable to update Java build path. Please check your system environment”
This was trivial, due to presence of two different versions javax.xml.soap under my STS*;
removing one of two and restarting STS(Eclipse)* that was fixed.
Reference: “Unable to update Java build path. Please check your system environment. | Roberto Oróstica Correa’s Blog”
2) “Server did not recognize the value of HTTP Header SOAPAction”
The problem is caused by using the wrong SOAP version.
As shown in service definition (wsdl) SOAP version required is 1.2,
but my request was 1.1 version;
to fix you have to change namespace definition in Spring xml configuration file,
from http://schemas.xmlsoap.org/soap/envelope/ (v1.1 namespace)
to http://www.w3.org/2003/05/soap-envelope (v1.2 namespace)
and discover methods to call to perfom requests against Web Service producer…
Other related links:
– http://stackoverflow.com/questions/11631833/spring-webservicetemplate-soapaction-missing-in-http-header
– http://docs.spring.io/spring-ws/site/reference/html/server.html#server-endpoint-mapping
– http://www.rethinkware.com/display/RTW/Changing+soap+version+of+Spring-WS+client
– http://forum.spring.io/forum/spring-projects/web-services/45083-server-did-not-recognize-the-value-of-http-header-soapaction
– http://koenserneels.blogspot.be/2013/10/building-soap-webservices-proxy-module.html
Notes
* Actually I was using Spring Tool Suite, based on Eclipse