Class WsdlDefinitionHandlerAdapter
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean,org.springframework.web.servlet.HandlerAdapter
WsdlDefinition interface with the generic DispatcherServlet.
Reads the source from the mapped WsdlDefinition implementation, and writes that as the result to the
HttpServletResponse.
If the property transformLocations is set to true, this adapter will change location
attributes in the WSDL definition to reflect the URL of the incoming request. If the location field in the original
WSDL is an absolute path, the scheme, hostname, and port will be changed. If the location is a relative path, the
scheme, hostname, port, and context path will be prepended. This behavior can be customized by overriding the
transformLocation() method.
For instance, if the location attribute defined in the WSDL is
http://localhost:8080/context/services/myService, and the request URI for the WSDL is
http://example.com/context/myService.wsdl, the location will be changed to
http://example.com/context/services/myService.
If the location attribute defined in the WSDL is /services/myService, and the request URI for the WSDL is
http://example.com:8080/context/myService.wsdl, the location will be changed to
http://example.com:8080/context/services/myService.
When transformLocations is enabled, all location attributes found in the WSDL definition are changed
by default. This behavior can be customized by changing the locationExpression property, which is an XPath
expression that matches the attributes to change.
- Since:
- 1.0.0
- Author:
- Arjen Poutsma
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidlonggetLastModified(jakarta.servlet.http.HttpServletRequest request, Object handler) org.springframework.web.servlet.ModelAndViewhandle(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Object handler) voidsetLocationExpression(String locationExpression) Sets the XPath expression used for extracting thelocationattributes from the WSDL 1.1 definition.voidsetSchemaLocationExpression(String schemaLocationExpression) Sets the XPath expression used for extracting theschemaLocationattributes from the WSDL 1.1 definition.voidsetTransformLocations(boolean transformLocations) Sets whether relative address locations in the WSDL are to be transformed using the request URI of the incomingHttpServletRequest.voidsetTransformSchemaLocations(boolean transformSchemaLocations) Sets whether relative address schema locations in the WSDL are to be transformed using the request URI of the incomingHttpServletRequest.booleanprotected voidtransformLocations(Document definitionDocument, jakarta.servlet.http.HttpServletRequest request) Transforms alllocationattributes to reflect the server name givenHttpServletRequest.protected voidtransformSchemaLocations(Document definitionDocument, jakarta.servlet.http.HttpServletRequest request) Transforms allschemaLocationattributes to reflect the server name givenHttpServletRequest.Methods inherited from class org.springframework.ws.transport.http.LocationTransformerObjectSupport
transformLocation, transformLocationsMethods inherited from class org.springframework.xml.transform.TransformerObjectSupport
createTransformer, getTransformerFactory, newTransformerFactory, setTransformerFactoryClass, transform
-
Field Details
-
DEFAULT_LOCATION_EXPRESSION
Default XPath expression used for extracting alllocationattributes from the WSDL definition.- See Also:
-
DEFAULT_SCHEMA_LOCATION_EXPRESSION
Default XPath expression used for extracting allschemaLocationattributes from the WSDL definition.- See Also:
-
-
Constructor Details
-
WsdlDefinitionHandlerAdapter
public WsdlDefinitionHandlerAdapter()
-
-
Method Details
-
setLocationExpression
Sets the XPath expression used for extracting thelocationattributes from the WSDL 1.1 definition.Defaults to
DEFAULT_LOCATION_EXPRESSION. -
setSchemaLocationExpression
Sets the XPath expression used for extracting theschemaLocationattributes from the WSDL 1.1 definition.Defaults to
DEFAULT_SCHEMA_LOCATION_EXPRESSION. -
setTransformLocations
public void setTransformLocations(boolean transformLocations) Sets whether relative address locations in the WSDL are to be transformed using the request URI of the incomingHttpServletRequest. Defaults tofalse. -
setTransformSchemaLocations
public void setTransformSchemaLocations(boolean transformSchemaLocations) Sets whether relative address schema locations in the WSDL are to be transformed using the request URI of the incomingHttpServletRequest. Defaults tofalse. -
getLastModified
- Specified by:
getLastModifiedin interfaceorg.springframework.web.servlet.HandlerAdapter
-
handle
public org.springframework.web.servlet.ModelAndView handle(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Object handler) throws Exception - Specified by:
handlein interfaceorg.springframework.web.servlet.HandlerAdapter- Throws:
Exception
-
supports
- Specified by:
supportsin interfaceorg.springframework.web.servlet.HandlerAdapter
-
afterPropertiesSet
- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
Exception
-
transformLocations
protected void transformLocations(Document definitionDocument, jakarta.servlet.http.HttpServletRequest request) throws Exception Transforms alllocationattributes to reflect the server name givenHttpServletRequest. Determines the suitable attributes by evaluating the defined XPath expression, and delegates totransformLocationto do the transformation for all attributes that match.This method is only called when the
transformLocationsproperty is true. -
transformSchemaLocations
protected void transformSchemaLocations(Document definitionDocument, jakarta.servlet.http.HttpServletRequest request) throws Exception Transforms allschemaLocationattributes to reflect the server name givenHttpServletRequest. Determines the suitable attributes by evaluating the defined XPath expression, and delegates totransformLocationto do the transformation for all attributes that match.This method is only called when the
transformSchemaLocationsproperty is true.
-