Class Options
- java.lang.Object
-
- org.apache.axis2.client.Options
-
- All Implemented Interfaces:
Externalizable
,Serializable
,SafeSerializable
public class Options extends Object implements Externalizable, SafeSerializable
Holder for operation client options. This is used by the other classes in this package to configure various aspects of how a client communicates with a service. It exposes a number of predefined properties as part of the API (with specific getXXX and setXXX methods), and also allows for arbitrary named properties to be passed using a properties map with the property name as the key value. Instances of this class can be chained together for property inheritance, so that if a property is not set in one instance it will check its parent for a setting.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
CUSTOM_REPLYTO_ADDRESS
static String
CUSTOM_REPLYTO_ADDRESS_TRUE
static int
DEFAULT_TIMEOUT_MILLISECONDS
Default blocking timeout value.protected TransportOutDescription
transportOut
This is used for sending and receiving messages.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
activate(ConfigurationContext cc)
This method checks to see if additional work needs to be done in order to complete the object reconstitution.void
addRelatesTo(RelatesTo relatesTo)
Add WS-Addressing RelatesTo item.String
getAction()
Get WS-Addressing Action / SOAP Action string.EndpointReference
getFaultTo()
Get WS-Addressing FaultTo endpoint reference.EndpointReference
getFrom()
Set WS-Addressing From endpoint reference.TransportListener
getListener()
Get listener used for incoming message.String
getLogCorrelationIDString()
Get the ID associated with this object instance.String
getMessageId()
Get WS-Addressing MessageId.Options
getParent()
Get parent instance providing default property values.String
getPassword()
Map<String,Object>
getProperties()
Get a copy of the general option properties.Object
getProperty(String key)
Get named property value.RelatesTo
getRelatesTo()
Return a single instance of WS-Addressing RelatesTo that has a relationship type of either "http://www.w3.org/2005/08/addressing/reply" or "wsa:Reply".RelatesTo
getRelatesTo(String type)
Get WS-Addressing RelatesTo item with a specified type.RelatesTo[]
getRelationships()
Get all WS-Addressing RelatesTo items.EndpointReference
getReplyTo()
Get WS-Addressing ReplyTo endpoint reference.String
getSoapVersionURI()
Get SOAP version being used.long
getTimeOutInMilliSeconds()
Gets the wait time after which a client times out in a blocking scenario.EndpointReference
getTo()
Get WS-Addressing To endpoint reference.TransportInDescription
getTransportIn()
Get transport used for incoming message.String
getTransportInProtocol()
Get transport protocol used for incoming message.TransportOutDescription
getTransportOut()
Get outbound transport description.String
getUserName()
boolean
isCallTransportCleanup()
Get the value of thecallTransportCleanup
property.boolean
isEquivalent(Options obj)
Compares key parts of the state from the current instance of this class with the specified instance to see if they are equivalent.boolean
isExceptionToBeThrownOnSOAPFault()
If there is a SOAP Fault in the body of the incoming SOAP Message, system can be configured to throw an exception with the details extracted from the information from the fault message.boolean
isManageSession()
Check if session management is enabled.boolean
isUseSeparateListener()
Check whether the two SOAP Messages are be sent over same channel or over separate channels.void
readExternal(ObjectInput inObject)
Restore the contents of the MessageContext that was previously saved.void
setAction(String action)
Set WS-Addressing Action / SOAP Action string.void
setCallTransportCleanup(boolean callTransportCleanup)
Set the value of thecallTransportCleanup
property.void
setExceptionToBeThrownOnSOAPFault(boolean exceptionToBeThrownOnSOAPFault)
If there is a SOAP Fault in the body of the incoming SOAP Message, system can be configured to throw an exception with the details extracted from the information from the fault message.void
setFaultTo(EndpointReference faultTo)
Set WS-Addressing FaultTo endpoint reference.void
setFrom(EndpointReference from)
Set WS-Addressing From endpoint reference.void
setListener(TransportListener listener)
Set listener used for incoming message.void
setManageSession(boolean manageSession)
Set session management enabled state.void
setMessageId(String messageId)
Set WS-Addressing MessageId.void
setParent(Options parent)
Set parent instance providing default property values.void
setPassword(String password)
void
setProperties(Map<String,Object> properties)
Set the general property definitions.void
setProperty(String propertyKey, Object property)
General properties you need to pass in to the message context must be set via this method.void
setRelationships(RelatesTo[] list)
Set WS-Addressing RelatesTo items.void
setReplyTo(EndpointReference replyTo)
Set WS-Addressing ReplyTo endpoint.void
setSenderTransport(String senderTransport, AxisConfiguration axisConfiguration)
Set transport used for outgoing message.void
setSoapVersionURI(String soapVersionURI)
Set the SOAP version to be used.void
setTimeOutInMilliSeconds(long timeOutInMilliSeconds)
This is used in blocking scenario.void
setTo(EndpointReference to)
Set WS-Addressing To endpoint.void
setTransportIn(TransportInDescription transportIn)
Set transport used for incoming message.void
setTransportInProtocol(String transportInProtocol)
Set transport protocol used for incoming message.void
setTransportOut(TransportOutDescription transportOut)
Set transport used for outgoing message.void
setUserName(String userName)
void
setUseSeparateListener(boolean useSeparateListener)
Used to specify whether the two SOAP Messages are be sent over same channel or over separate channels.void
writeExternal(ObjectOutput o)
Save the contents of this object.
-
-
-
Field Detail
-
CUSTOM_REPLYTO_ADDRESS
public static String CUSTOM_REPLYTO_ADDRESS
-
CUSTOM_REPLYTO_ADDRESS_TRUE
public static String CUSTOM_REPLYTO_ADDRESS_TRUE
-
DEFAULT_TIMEOUT_MILLISECONDS
public static final int DEFAULT_TIMEOUT_MILLISECONDS
Default blocking timeout value.- See Also:
- Constant Field Values
-
transportOut
protected TransportOutDescription transportOut
This is used for sending and receiving messages.
-
-
Constructor Detail
-
Options
public Options()
Default constructor
-
Options
public Options(Options parent)
In normal mode operation, this options will try to fulfil the request from its values. If that is not possible, this options will request those information from its parent.- Parameters:
parent
-
-
-
Method Detail
-
getAction
public String getAction()
Get WS-Addressing Action / SOAP Action string.- Returns:
- action
-
getFaultTo
public EndpointReference getFaultTo()
Get WS-Addressing FaultTo endpoint reference.- Returns:
- endpoint
-
getFrom
public EndpointReference getFrom()
Set WS-Addressing From endpoint reference.- Returns:
- endpoint
-
getListener
public TransportListener getListener()
Get listener used for incoming message.- Returns:
- listener
-
getTransportIn
public TransportInDescription getTransportIn()
Get transport used for incoming message.- Returns:
- transport information
-
getTransportInProtocol
public String getTransportInProtocol()
Get transport protocol used for incoming message.- Returns:
- name protocol name ("http", "tcp", etc.)
-
getMessageId
public String getMessageId()
Get WS-Addressing MessageId.- Returns:
- uri string
-
getProperties
public Map<String,Object> getProperties()
Get a copy of the general option properties. Because of the way options are stored this does not include properties with specific get/set methods, only the general properties identified by a text string. The returned map merges properties inherited from parent options, if any, to give a complete set of property definitions as seen by users of this options instance. The returned copy is not "live", so changes you make to the copy are not reflected in the actual option settings. However, you can make the modified values take effect with a call tosetProperties(Map)
,- Returns:
- copy of general properties
-
getProperty
public Object getProperty(String key)
Get named property value.- Parameters:
key
-- Returns:
- the value related to this key.
null
, if not found.
-
getRelatesTo
public RelatesTo getRelatesTo(String type)
Get WS-Addressing RelatesTo item with a specified type. If there are multiple RelatesTo items defined with the same type, the one returned by this method is arbitrary - if you need to handle this case, you can instead use thegetRelationships()
to retrieve all the items and check for multiple matches.- Parameters:
type
- relationship type (URI)- Returns:
- item of specified type
-
getRelatesTo
public RelatesTo getRelatesTo()
Return a single instance of WS-Addressing RelatesTo that has a relationship type of either "http://www.w3.org/2005/08/addressing/reply" or "wsa:Reply". If no such instance of RelatesTo can be found then returnnull
.- Returns:
- an instance of
RelatesTo
-
getRelationships
public RelatesTo[] getRelationships()
Get all WS-Addressing RelatesTo items.- Returns:
- array of items
-
setRelationships
public void setRelationships(RelatesTo[] list)
Set WS-Addressing RelatesTo items.- Parameters:
list
-
-
getReplyTo
public EndpointReference getReplyTo()
Get WS-Addressing ReplyTo endpoint reference.- Returns:
- endpoint
-
getTransportOut
public TransportOutDescription getTransportOut()
Get outbound transport description.- Returns:
- description
-
getSoapVersionURI
public String getSoapVersionURI()
Get SOAP version being used.- Returns:
- version
-
getTimeOutInMilliSeconds
public long getTimeOutInMilliSeconds()
Gets the wait time after which a client times out in a blocking scenario. The default is Options#DEFAULT_TIMEOUT_MILLISECONDS- Returns:
- timeOutInMilliSeconds
-
getTo
public EndpointReference getTo()
Get WS-Addressing To endpoint reference.- Returns:
- endpoint
-
isExceptionToBeThrownOnSOAPFault
public boolean isExceptionToBeThrownOnSOAPFault()
If there is a SOAP Fault in the body of the incoming SOAP Message, system can be configured to throw an exception with the details extracted from the information from the fault message. This boolean variable will enable that facility. If this is false, the response message will just be returned to the application, irrespective of whether it has a Fault or not.- Returns:
true
if exception to be thrown
-
isUseSeparateListener
public boolean isUseSeparateListener()
Check whether the two SOAP Messages are be sent over same channel or over separate channels. Only duplex transports such as http and tcp support afalse
value.- Returns:
- separate channel flag
-
getParent
public Options getParent()
Get parent instance providing default property values.- Returns:
- parent (
null
if none)
-
setParent
public void setParent(Options parent)
Set parent instance providing default property values.- Parameters:
parent
- (null
if none)
-
setAction
public void setAction(String action)
Set WS-Addressing Action / SOAP Action string.- Parameters:
action
-
-
setExceptionToBeThrownOnSOAPFault
public void setExceptionToBeThrownOnSOAPFault(boolean exceptionToBeThrownOnSOAPFault)
If there is a SOAP Fault in the body of the incoming SOAP Message, system can be configured to throw an exception with the details extracted from the information from the fault message. This boolean variable will enable that facility. If this is false, the response message will just be returned to the application, irrespective of whether it has a Fault or not.- Parameters:
exceptionToBeThrownOnSOAPFault
-
-
setFaultTo
public void setFaultTo(EndpointReference faultTo)
Set WS-Addressing FaultTo endpoint reference.- Parameters:
faultTo
- endpoint
-
setFrom
public void setFrom(EndpointReference from)
Set WS-Addressing From endpoint reference.- Parameters:
from
- endpoint
-
setListener
public void setListener(TransportListener listener)
Set listener used for incoming message.- Parameters:
listener
-
-
setTransportIn
public void setTransportIn(TransportInDescription transportIn)
Set transport used for incoming message.- Parameters:
transportIn
-
-
setTransportInProtocol
public void setTransportInProtocol(String transportInProtocol)
Set transport protocol used for incoming message.- Parameters:
transportInProtocol
- ("http", "tcp", etc.)
-
setMessageId
public void setMessageId(String messageId)
Set WS-Addressing MessageId.- Parameters:
messageId
- URI string
-
setProperties
public void setProperties(Map<String,Object> properties)
Set the general property definitions. Due to the way properties are stored, this will not effect the values of predefined properties with specific get/set methods.- Parameters:
properties
-
-
setProperty
public void setProperty(String propertyKey, Object property)
General properties you need to pass in to the message context must be set via this method. This method can only be used for properties which do not have specific get/set methods. Here are some of the properties supported in Axis2.Generic Constants
- org.apache.axis2.Constants.Configuration.TRANSPORT_URL
Sometimes you want to send your SOAP message through a node, before it reaches to its destination. This means you want to give transport URL different from the URL of the ultimate destination. A typical example would be wanting to send this SOAP (or REST)message through a transparent proxy or through a message monitoring applet. How can that be done using the ServiceClient API?
options.setTo("http://destination.org"); options.setProperty(MessageContextConstants.TRANSPORT_URL, "http://myProxy.org");
This will send your SOAP message to "http://myProxy.org", but if WS-Addressing is enabled, wsa:To will contain "http://destination.org" as To address.
- org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING
This will enable user to set the character set encoding scheme to be used when sending the message. Default is set to "UTF-8"
- org.apache.axis2.Constants.Configuration.ENABLE_MTOM
This will enable/disable MTOM support for outgoing messages.
Possible values are:
"true"/"false" or Boolean.TRUE/Boolean.FALSE
WS-Addressing Module Specific Constants
- org.apache.axis2.addressing.AddressingConstants.WS_ADDRESSING_VERSION
This will enable to select one of the two WS-Addressing versions available, if WS-Addressing is engaged.
Possible values are:
org.apache.axis2.addressing.AddressingConstants.Final.WSA_NAMESPACE and org.apache.axis2.addressing.AddressingConstants.Submission.WSA_NAMESPACE
- org.apache.axis2.addressing.AddressingConstants.REPLACE_ADDRESSING_HEADERS
AddressingOutHandler picks up the addressing information from the message context and set them to the outgoing message. But someone may have already put some addressing headers, before the AddressingOutHandler. This flag will notify the handler whether to override them or not.
Possible values are:
"true"/"false" or Boolean.TRUE/Boolean.FALSE
- org.apache.axis2.addressing.AddressingConstants.
DISABLE_ADDRESSING_FOR_OUT_MESSAGESIf WS-Addressing is engaged globally or some how in effect for this particular invocation, this will disable Axis2 from putting WS-Addressing headers in to the out going SOAP message. (Note that Axis2 will not put addressing headers to the outgoing message, irrespective of the above flag, if the incoming message did not contain addressing headers).
Possible values are:
"true"/"false" or Boolean.TRUE/Boolean.FALSE
HTTP Constants
- org.apache.axis2.kernel.http.HTTPConstants.CHUNKED
This will enable/disable chunking support.
Possible values are:
"true"/"false" or Boolean.TRUE/Boolean.FALSE
- org.apache.axis2.kernel.http.HTTPConstants.NTLM_AUTHENTICATION
This enables the user to pass in NTLM authentication information, such as host, port, realm, username, password to be used with HTTP transport sender.
The value should always be an instance of:
org.apache.axis2.transport.http.HttpTransportProperties. NTLMAuthentication
- org.apache.axis2.kernel.http.HTTPConstants.PROXY
This enables the user to pass in proxy information, such as proxy host name, port, domain, username, password to be used with HTTP transport sender.
The value should always be an instance of:
org.apache.axis2.transport.http.HttpTransportProperties.ProxyProperties
The value should always be an instance of:
org.apache.axis2.transport.http.HttpTransportProperties.BasicAuthentication
- org.apache.axis2.kernel.http.HTTPConstants.SO_TIMEOUT
This enables the user to pass in socket timeout value as an Integer. If nothing is set, the default value is 60000 milliseconds.
- org.apache.axis2.kernel.http.HTTPConstants.CONNECTION_TIMEOUT
This enables the user to pass in connection timeout value as an Integer. If nothing is set, the default value is 60000 milliseconds.
- org.apache.axis2.kernel.http.HTTPConstants.USER_AGENT
This enables the user to set the user agent header in the outgoing HTTP request. Default value is "Axis2"
- org.apache.axis2.kernel.http.HTTPConstants.MC_GZIP_REQUEST
If set this will GZip your request and send over to the destination. Before doing this, you must make sure that the receiving end supports GZip compressed streams.
Possible values are:
"true"/"false" or Boolean.TRUE/Boolean.FALSE
- org.apache.axis2.kernel.http.HTTPConstants.MC_ACCEPT_GZIP
Whether or not you send a gzip-ped request, you can choose to receive GZIP back from the server using this flag.
Possible values are:
"true"/"false" or Boolean.TRUE/Boolean.FALSE
- org.apache.axis2.kernel.http.HTTPConstants.COOKIE_STRING
This enables the user to set the cookie string header in the outgoing HTTP request.
- org.apache.axis2.kernel.http.HTTPConstants.HTTP_PROTOCOL_VERSION
This will set the HTTP protocol version to be used in sending the SOAP requests.
Possible values are :
HTTP/1.1 - HTTPConstants.HEADER_PROTOCOL_11 HTTP/1.0 - HTTPConstants.HEADER_PROTOCOL_10
Default is to use HTTP/1.1.
- org.apache.axis2.kernel.http.HTTPConstants.HTTP_HEADERS
You might sometimes want to send your own custom HTTP headers. You can set an ArrayList filled with
org.apache.commons.httpclient.Header
objects using the above property. You must not try to override the Headers the Axis2 engine is setting to the outgoing message.
- org.apache.axis2.kernel.http.HTTPConstants.REUSE_HTTP_CLIENT
You might want to use the same HTTPClient instance for multiple invocations. This flag will notify the engine to use the same HTTPClient between invocations.
- org.apache.axis2.kernel.http.HTTPConstants.CACHED_HTTP_CLIENT
If user had requested to re-use an HTTPClient using the above property, this property can be used to set a custom HTTPClient to be re-used.
Constants to be used in a REST Invocation
- org.apache.axis2.transport.http.Constants.Configuration.ENABLE_REST
Enabling REST using the above flag will send your request as a REST invocation.
Possible values are:
"true"/"false" or Boolean.TRUE/Boolean.FALSE
- org.apache.axis2.transport.http.Constants.Configuration.HTTP_METHOD
This will help the user to pick the HTTP method to be used during a REST invocation.
Possible values are :
org.apache.axis2.Constants.Configuration.HTTP_METHOD_GET and org.apache.axis2.Constants.Configuration.HTTP_METHOD_POST
Default is to use POST method.
- org.apache.axis2.transport.http.Constants.Configuration.CONTENT_TYPE
This will help the user to pick the content type to be used during a REST
invocation.
Possible values are :
- application/xml -
HTTPConstants.MEDIA_TYPE_APPLICATION_XML
- application/x-www-form-urlencoded -
HTTPConstants.MEDIA_TYPE_X_WWW_FORM
- text/xml -
MEDIA_TYPE_TEXT_XML
- multipart/related -
MEDIA_TYPE_MULTIPART_RELATED
- application/xml -
- Parameters:
propertyKey
-property
-
- org.apache.axis2.Constants.Configuration.TRANSPORT_URL
-
addRelatesTo
public void addRelatesTo(RelatesTo relatesTo)
Add WS-Addressing RelatesTo item.- Parameters:
relatesTo
-
-
setReplyTo
public void setReplyTo(EndpointReference replyTo)
Set WS-Addressing ReplyTo endpoint.- Parameters:
replyTo
- endpoint
-
setTransportOut
public void setTransportOut(TransportOutDescription transportOut)
Set transport used for outgoing message.- Parameters:
transportOut
-
-
setSenderTransport
public void setSenderTransport(String senderTransport, AxisConfiguration axisConfiguration) throws AxisFault
Set transport used for outgoing message.- Parameters:
senderTransport
- transport name in Axis2 configuration ("http", "tcp", etc.)axisConfiguration
-- Throws:
AxisFault
- if the transport is not found
-
setSoapVersionURI
public void setSoapVersionURI(String soapVersionURI)
Set the SOAP version to be used.- Parameters:
soapVersionURI
-- See Also:
Constants.URI_SOAP11_ENV
,Constants.URI_SOAP12_ENV
-
setTimeOutInMilliSeconds
public void setTimeOutInMilliSeconds(long timeOutInMilliSeconds)
This is used in blocking scenario. Client will time out after waiting this amount of time. The default is 2000 and must be provided in multiples of 100.- Parameters:
timeOutInMilliSeconds
-
-
setTo
public void setTo(EndpointReference to)
Set WS-Addressing To endpoint.- Parameters:
to
- endpoint
-
setUseSeparateListener
public void setUseSeparateListener(boolean useSeparateListener)
Used to specify whether the two SOAP Messages are be sent over same channel or over separate channels. The value of this variable depends on the transport specified. For e.g., if the transports are different this is true by default. HTTP transport supports both cases while SMTP transport supports only two channel case.- Parameters:
useSeparateListener
-
-
isManageSession
public boolean isManageSession()
Check if session management is enabled.- Returns:
true
if enabled
-
setManageSession
public void setManageSession(boolean manageSession)
Set session management enabled state. When session management is enabled, the engine will automatically send session data (such as the service group id, or HTTP cookies) as part of requests.- Parameters:
manageSession
-true
if enabling sessions
-
writeExternal
public void writeExternal(ObjectOutput o) throws IOException
Save the contents of this object. NOTE: Transient fields and static fields are not saved.- Specified by:
writeExternal
in interfaceExternalizable
- Parameters:
out
- The stream to write the object contents to- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput inObject) throws IOException, ClassNotFoundException
Restore the contents of the MessageContext that was previously saved. NOTE: The field data must read back in the same order and type as it was written. Some data will need to be validated when resurrected.- Specified by:
readExternal
in interfaceExternalizable
- Parameters:
in
- The stream to read the object contents from- Throws:
IOException
ClassNotFoundException
-
activate
public void activate(ConfigurationContext cc)
This method checks to see if additional work needs to be done in order to complete the object reconstitution. Some parts of the object restored from the readExternal() cannot be completed until we have a configurationContext from the active engine. The configurationContext is used to help this object to plug back into the engine's configuration and deployment objects.- Parameters:
cc
- The configuration context object representing the active configuration
-
isEquivalent
public boolean isEquivalent(Options obj)
Compares key parts of the state from the current instance of this class with the specified instance to see if they are equivalent. This differs from the java.lang.Object.equals() method in that the equals() method generally looks at both the object identity (location in memory) and the object state (data).- Parameters:
obj
- The object to compare with- Returns:
- TRUE if this object is equivalent with the specified object that is, key fields match FALSE, otherwise
-
getLogCorrelationIDString
public String getLogCorrelationIDString()
Get the ID associated with this object instance.- Returns:
- A string that can be output to a log file as an identifier for this object instance. It is suitable for matching related log entries.
-
isCallTransportCleanup
public boolean isCallTransportCleanup()
Get the value of thecallTransportCleanup
property. This property determines whetherServiceClient.cleanupTransport()
is called automatically (true
) or not (false
).- Returns:
- the value of the
callTransportCleanup
property - See Also:
ServiceClient.cleanupTransport()
-
setCallTransportCleanup
public void setCallTransportCleanup(boolean callTransportCleanup)
Set the value of thecallTransportCleanup
property. This property determines whetherServiceClient.cleanupTransport()
is called automatically (true
) or not (false
).- Parameters:
callTransportCleanup
- the new value- See Also:
ServiceClient.cleanupTransport()
-
getUserName
public String getUserName()
-
setUserName
public void setUserName(String userName)
-
getPassword
public String getPassword()
-
setPassword
public void setPassword(String password)
-
-