Spring Web Services Framework

org.springframework.ws.server.endpoint
Class AbstractXomPayloadEndpoint

java.lang.Object
  extended by org.springframework.xml.transform.TransformerObjectSupport
      extended by org.springframework.ws.server.endpoint.AbstractXomPayloadEndpoint
All Implemented Interfaces:
PayloadEndpoint

public abstract class AbstractXomPayloadEndpoint
extends TransformerObjectSupport
implements PayloadEndpoint

Abstract base class for endpoints that handle the message payload as XOM elements. Offers the message payload as a XOM Element, and allows subclasses to create a response by returning an Element.

An AbstractXomPayloadEndpoint only accept one payload element. Multiple payload elements are not in accordance with WS-I.

This class tries to use Java reflection to access some of the non-public classes of XOM (nu.xom.xslt.XOMResult and nu.xom.xslt.XOMSource). If these classes cannot be accessed because of security restrictions, a slower approach is used. You can specify whether you want to use the faster, but non-public reflection-based approach by calling AbstractXomPayloadEndpoint(boolean).

Since:
1.0.0
Author:
Arjen Poutsma
See Also:
Element

Field Summary
 
Fields inherited from class org.springframework.xml.transform.TransformerObjectSupport
logger
 
Constructor Summary
protected AbstractXomPayloadEndpoint()
          Creates a new instance of AbstractXomPayloadEndpoint using reflection to access faster, but non-public XOM classes.
protected AbstractXomPayloadEndpoint(boolean useReflection)
          Creates a new instance of AbstractXomPayloadEndpoint.
 
Method Summary
 Source invoke(Source request)
          Invokes the endpoint with the given request payload, and possibly returns a response.
protected abstract  Element invokeInternal(Element requestElement)
          Template method.
 
Methods inherited from class org.springframework.xml.transform.TransformerObjectSupport
createTransformer, getTransformerFactory, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractXomPayloadEndpoint

protected AbstractXomPayloadEndpoint()
Creates a new instance of AbstractXomPayloadEndpoint using reflection to access faster, but non-public XOM classes.


AbstractXomPayloadEndpoint

protected AbstractXomPayloadEndpoint(boolean useReflection)
Creates a new instance of AbstractXomPayloadEndpoint.

Parameters:
useReflection - specifies whether to use faster, but non-public XOM classes (true); or to use a converting approach (false)
Method Detail

invoke

public final Source invoke(Source request)
                    throws Exception
Description copied from interface: PayloadEndpoint
Invokes the endpoint with the given request payload, and possibly returns a response.

Specified by:
invoke in interface PayloadEndpoint
Parameters:
request - the payload of the request message, may be null
Returns:
the payload of the response message, may be null to indicate no response
Throws:
Exception - if an exception occurs

invokeInternal

protected abstract Element invokeInternal(Element requestElement)
                                   throws Exception
Template method. Subclasses must implement this. Offers the request payload as a XOM Element, and allows subclasses to return a response Element.

Parameters:
requestElement - the contents of the SOAP message as XOM element
Returns:
the response element. Can be null to specify no response.
Throws:
Exception

Spring Web Services Framework

Copyright � 2005-2008 The Spring Web Services Framework. All Rights Reserved.