Upgrading from version 1.0-RC2 to 1.0
No major changes have occured since RC2.
Upgrading from version 1.0-RC1 to 1.0-RC2
Some minor last changes were made between version 1.0 Release Candidate 1 and 2 of the project. The following should help most users the project update their applications:
Some issues have been resolved which make the WebServiceTemplate more useable in Plain Old XML settings, and less SOAP-specific.
- The various overloaded sendAndReceive() methods have been renamed to aid comprehension. The method signature now reflects what is sent (eg. a Source), and what is received (eg. a Result).
- The WebServiceMessageCallback method doInMessage() has been renamed to doWithMessage(), since it was poorly named.
- The FaultResolver has been renamed to FaultMessageReceiver to indicate its responsibility more clearly.
- The SoapActionCallback has been moved to org.springframework.ws.soap.client.core.
Upgrading from version 1.0-M3 to 1.0-RC1
Some minor changes were made between version 1.0 Milestone 3 and Release Candidate 1 of the project. The following should help most users the project update their applications:
Attachment support had to be moved and changed to facilitate MTOM.
- The Attachment interface was moved from org.springframework.ws.soap to org.springframework.ws.mime.
- The id property on Attachment>> was renamed to <<contentId.
- Methods for getting and adding attachments were taken from SoapMessage and extraced into a new interface: MimeMessage. Adding a method requires a content id now.
The WebServiceTemplate no longer declares an IOException for each method. Rather, an runtime exception hierarchy has been created in org.springframework.ws.client.
HttpUrlConnectionMessageSender and CommonsHttpMessageSender
The HttpUrlConnectionMessageSender and CommonsHttpMessageSender have lost their url property. URLs (or rather: URIs) are now defined on the WebServiceTemplate by specifying a default URI, or by giving the URI as a parameter.
The EndpointInterceptor has a handleFault method now, which gets invoked (rather than handleResponse) when WebServiceMessage.hasFault() is true for the response.
- All of SoapMessageDispatcher's strategy interfaces (SoapEndpointInterceptor, SoapEndpointMapping) have been moved from org.springframework.ws.soap to org.springframework.ws.soap.server.
Upgrading from version 1.0-M2 to 1.0-M3
Several changes were made between version 1.0 Milestone 2 and Milestone 3 of the project. These changes increased modularity of the code, enhanced unit testing, made package roles clearer, and added compelling alternatives to adapters and using web.xml security constraints to protect HTTP resources.
Unfortunately, changes to the API and package locations were required. The following should help most users the project update their applications:
The MessageContextFactory has been refactored into the WebServiceMessageFactory, and doesn't create MessageContexts any more, but WebServiceMessages. This change is mostly internal, but you need to change the name of the factory:
- If you used AxiomSoapMessageContextFactory before, replace it with AxiomSoapMessageFactory.
- If you used SaajSoapMessageContextFactory before, replace with SaajSoapMessageFactory.
To make a clear distinction between server-side and client-side code, we had to move the various server-side classes.
- The MessageDispatcher has been moved to the org.springframework.ws.server package.
- The SoapMessageDispatcher has been moved to the org.springframework.ws.soap.server package.
- All of MessageDispatcher's strategy interfaces (EndpointAdapter, EndpointInterceptor, EndpointMapping, EndpointExceptionResolver) have been moved from org.springframework.ws to org.springframework.ws.server.
- All endpoint implementations and adpters in org.springframework.ws.endpoint have been moved to org.springframework.ws.server.endpoint.
- TransformerObjectSupport has been moved into the Spring-XML module.
- All EndpointInterceptors in org.springframework.ws.endpoint.interceptor have been moved to org.springframework.ws.server.endpoint.interceptor.
- All EndpointInterceptors in org.springframework.ws.soap.endpoint.interceptor have been moved to org.springframework.ws.soap.server.endpoint.interceptor.
- The PayloadValidatingInterceptor has been moved to org.springframework.ws.soap.server.endpoint.interceptor as well.
- All EndpointMappings in org.springframework.ws.endpoint.mapping have been moved to org.springframework.ws.server.endpoint.mapping.
- All EndpointInterceptors in org.springframework.ws.soap.endpoint.mapping have been moved to org.springframework.ws.soap.server.endpoint.mapping.
Endpoint exception resolvers
- All EndpointExceptionResolvers in org.springframework.ws.soap.endpoint have been moved to org.springframework.ws.soap.server.endpoint.
- TransportContext and TransportContextHolder have been moved to org.springframework.ws.transport.context package.
- The MessageEndpointAdapter has been renamed to WebServiceMessageReceiverHandlerAdapter, but still resides in the same package (org.springframework.ws.transport.http).
- The SoapMessageContext has been removed. The MessageContext offers the same functionality, though it might require casting.