org.jboss.soa.esb.actions.soap.proxy
Class SOAPProxy

java.lang.Object
  extended by org.jboss.soa.esb.actions.AbstractActionLifecycle
      extended by org.jboss.soa.esb.actions.AbstractActionPipelineProcessor
          extended by org.jboss.soa.esb.actions.soap.proxy.SOAPProxy
All Implemented Interfaces:
ActionLifecycle, ActionPipelineProcessor

@Publish(value=SOAPProxyWsdlContractPublisher.class)
public class SOAPProxy
extends AbstractActionPipelineProcessor

A SOAPProxy focuses on the consumption of an external WS endpoint (e.g. hosted on .NET, another external Java-based AS, LAMP) and re-publication of a WS endpoint via the ESB. The ESB sits between the ultimate consumer/client (e.g. .NET WinForm application) and the ultimate producer (e.g. RoR-hosted WS). The purpose of this intermediary is to provide an abstraction layer that solves the following problems:

Other mechanisms of doing this are inappropriate or inadequate: With a SOAPProxy action: Configuration Properties
* For other possible configuration properties, see the specific SOAPProxyTransport implementations themselves.

Example of a straightforward scenario:

 <action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy">
     <property name="wsdl" value="http://localhost:8080/Quickstart_webservice_proxy_basic_ws/HelloWorldWS?wsdl"/>
 </action>
 
Example of a basic auth + ssl scenario:
 <action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy">
     <property name="wsdl" value="https://localhost:8443/webservice_proxy_security/HelloWorldWS?wsdl"/>
     <property name="endpointUrl" value="https://localhost:8443/webservice_proxy_security/HelloWorldWS"/>
     <property name="file" value="/META-INF/httpclient-8443.properties"/>
     <property name="clientCredentialsRequired" value="true"/>
 </action>
 

Author:
dward at jboss.org

Field Summary
 
Fields inherited from interface org.jboss.soa.esb.actions.ActionPipelineProcessor
PROCESS_EXCEPTION_METHOD, PROCESS_METHOD, PROCESS_SUCCESS_METHOD
 
Constructor Summary
SOAPProxy(ConfigTree config)
           
 
Method Summary
 void destroy()
          Destroy the action instance.
 void initialise()
          Initialise the action instance.
 Message process(Message message)
          Perform the action processing on the specified message.
 
Methods inherited from class org.jboss.soa.esb.actions.AbstractActionPipelineProcessor
processException, processSuccess
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SOAPProxy

public SOAPProxy(ConfigTree config)
          throws ConfigurationException
Throws:
ConfigurationException
Method Detail

initialise

public void initialise()
                throws ActionLifecycleException
Description copied from class: AbstractActionLifecycle
Initialise the action instance.

This method is called after the action instance has been instantiated so that configuration options can be validated.

Specified by:
initialise in interface ActionLifecycle
Overrides:
initialise in class AbstractActionLifecycle
Throws:
ActionLifecycleException - for errors during initialisation.

process

public Message process(Message message)
                throws ActionProcessingException
Description copied from interface: ActionPipelineProcessor
Perform the action processing on the specified message. This method is invoked for each message passing throught the pipeline.

Parameters:
message - The current message being processed.
Returns:
The message to be passed to the next stage of the pipeline.
Throws:
ActionProcessingException - for errors during processing.

destroy

public void destroy()
             throws ActionLifecycleException
Description copied from class: AbstractActionLifecycle
Destroy the action instance.

This method is called prior to the release of the action instance. All resources associated with this action instance should be released as the instance will no longer be used.

Specified by:
destroy in interface ActionLifecycle
Overrides:
destroy in class AbstractActionLifecycle
Throws:
ActionLifecycleException