Class XPathPayloadEndpointMapping
java.lang.Object
org.springframework.context.support.ApplicationObjectSupport
org.springframework.ws.server.endpoint.mapping.AbstractEndpointMapping
org.springframework.ws.server.endpoint.mapping.AbstractMapBasedEndpointMapping
org.springframework.ws.server.endpoint.mapping.XPathPayloadEndpointMapping
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.ApplicationContextAware
,org.springframework.core.Ordered
,EndpointMapping
public class XPathPayloadEndpointMapping
extends AbstractMapBasedEndpointMapping
implements org.springframework.beans.factory.InitializingBean
Implementation of the
EndpointMapping
interface that maps to endpoint using an XPath expression. Supports
both mapping to bean instances and mapping to bean names: the latter is required for prototype endpoints.
The XPath expression can be set using the expression
property. Setting this property is required. There is
also an optional namespaces
property, which defines to set namespace bindings that are used in the
expression.
The endpointMap
property is suitable for populating the endpoint map with bean references, e.g. via the map
element in XML bean definitions.
Mappings to bean names can be set via the mappings
property, in a form accepted by the
java.util.Properties
class, like as follows:
BookFlight=bookFlightEndpoint GetFlights=getFlightsEndpointThe syntax is XPATH_EVALUATION=ENDPOINT_BEAN_NAME. The key is the evaluation of the XPath expression for the incoming message, the value is the name of the endpoint.
- Since:
- 1.0.0
- Author:
- Arjen Poutsma
- See Also:
-
Field Summary
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
protected String
getLookupKeyForMessage
(MessageContext messageContext) Returns the endpoint key for the given message context.void
setExpression
(String expression) Sets the XPath expression to be used.void
setNamespaces
(Map<String, String> namespaces) Sets the namespaces bindings used in the expression.protected boolean
validateLookupKey
(String key) Validates the given endpoint key.Methods inherited from class org.springframework.ws.server.endpoint.mapping.AbstractMapBasedEndpointMapping
getEndpointInternal, initApplicationContext, lookupEndpoint, registerEndpoint, setEndpointMap, setLazyInitEndpoints, setMappings, setRegisterBeanNames
Methods inherited from class org.springframework.ws.server.endpoint.mapping.AbstractEndpointMapping
createEndpointInvocationChain, getDefaultEndpoint, getEndpoint, getInterceptors, getOrder, initInterceptors, resolveStringEndpoint, setDefaultEndpoint, setInterceptors, setOrder
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, isContextRequired, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
XPathPayloadEndpointMapping
public XPathPayloadEndpointMapping()
-
-
Method Details
-
setExpression
Sets the XPath expression to be used. -
setNamespaces
Sets the namespaces bindings used in the expression. Keys are prefixes, values are namespaces. -
afterPropertiesSet
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-
getLookupKeyForMessage
Description copied from class:AbstractMapBasedEndpointMapping
Returns the endpoint key for the given message context. Returnsnull
if a key cannot be found.- Specified by:
getLookupKeyForMessage
in classAbstractMapBasedEndpointMapping
- Returns:
- the registration key; or
null
- Throws:
Exception
-
validateLookupKey
Description copied from class:AbstractMapBasedEndpointMapping
Validates the given endpoint key. Should returntrue
is the given string is valid.- Specified by:
validateLookupKey
in classAbstractMapBasedEndpointMapping
-