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
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid@Nullable 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 LocationTransformerObjectSupport
transformLocation, transformLocationsMethods inherited from class 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. -
handle
public @Nullable 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
-
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.- Throws:
Exception- See Also:
-
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.- Throws:
Exception- See Also:
-