Spring Web Services Framework

org.springframework.ws.transport.mail
Class MailMessageSender

java.lang.Object
  extended by org.springframework.ws.transport.mail.MailMessageSender
All Implemented Interfaces:
InitializingBean, WebServiceMessageSender

public class MailMessageSender
extends Object
implements WebServiceMessageSender, InitializingBean

WebServiceMessageSender implementation that uses Mail MimeMessages. Requires a transport and store URI to be set.

Calling WebServiceConnection.receive(WebServiceMessageFactory) on connections created by this message sender will result in a blocking call, for the amount of milliseconds specified by the receiveSleepTime property. This will give the server time to formulate a response message. By default, this propery is set to 1 minute. For a proper request-response conversation to work, this property value must not be smaller the pollingInterval property of the server-side message receiver polling strategy.

This message sender supports URI's of the following format:

mailto:to[?param-name=param-value][&param-name=param-value]*
where the characters :, ?, and & stand for themselves. The to represents a RFC 822 mailbox. Valid param-name include:

param-nameDescription
subjectThe subject of the request message.

Some examples of email URIs are:

mailto:john@example.com
mailto:john@example.com@?subject=SOAP%20Test

Since:
1.5.0
Author:
Arjen Poutsma
See Also:
The mailto URL scheme

Field Summary
static long DEFAULT_RECEIVE_TIMEOUT
          Default timeout for receive operations.
 
Constructor Summary
MailMessageSender()
           
 
Method Summary
 void afterPropertiesSet()
           
 WebServiceConnection createConnection(URI uri)
          Create a new WebServiceConnection to the specified URI.
 void setFrom(String from)
          Sets the from address to use when sending request messages.
 void setJavaMailProperties(Properties javaMailProperties)
          Set JavaMail properties for the Session.
 void setReceiveSleepTime(long receiveSleepTime)
          Set the sleep time to use for receive calls, in milliseconds.
 void setSession(Session session)
          Set the JavaMail Session, possibly pulled from JNDI.
 void setStoreUri(String storeUri)
          Sets the JavaMail Store URI to be used for retrieving response messages.
 void setTransportUri(String transportUri)
          Sets the JavaMail Transport URI to be used for sending response messages.
 boolean supports(URI uri)
          Does this WebServiceMessageSender support the supplied URI?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_RECEIVE_TIMEOUT

public static final long DEFAULT_RECEIVE_TIMEOUT
Default timeout for receive operations. Set to 1000 * 60 milliseconds (i.e. 1 minute).

See Also:
Constant Field Values
Constructor Detail

MailMessageSender

public MailMessageSender()
Method Detail

setFrom

public void setFrom(String from)
             throws AddressException
Sets the from address to use when sending request messages.

Throws:
AddressException

setJavaMailProperties

public void setJavaMailProperties(Properties javaMailProperties)
Set JavaMail properties for the Session.

A new Session will be created with those properties. Use either this method or setSession(javax.mail.Session), but not both.

Non-default properties in this instance will override given JavaMail properties.


setReceiveSleepTime

public void setReceiveSleepTime(long receiveSleepTime)
Set the sleep time to use for receive calls, in milliseconds. The default is 1000 * 60 ms, that is 1 minute.


setSession

public void setSession(Session session)
Set the JavaMail Session, possibly pulled from JNDI.

Default is a new Session without defaults, that is completely configured via this instance's properties.

If using a pre-configured Session, non-default properties in this instance will override the settings in the Session.

See Also:
setJavaMailProperties(java.util.Properties)

setStoreUri

public void setStoreUri(String storeUri)
Sets the JavaMail Store URI to be used for retrieving response messages. Typically takes the form of [imap|pop3]://user:password@host:port/INBOX. Setting this property is required.

For example, imap://john:secret@imap.example.com/INBOX

See Also:
Session.getStore(URLName)

setTransportUri

public void setTransportUri(String transportUri)
Sets the JavaMail Transport URI to be used for sending response messages. Typically takes the form of smtp://user:password@host:port. Setting this property is required.

For example, smtp://john:secret@smtp.example.com

See Also:
Session.getTransport(URLName)

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception

createConnection

public WebServiceConnection createConnection(URI uri)
                                      throws IOException
Description copied from interface: WebServiceMessageSender
Create a new WebServiceConnection to the specified URI.

Specified by:
createConnection in interface WebServiceMessageSender
Parameters:
uri - the URI to open a connection to
Returns:
the new connection
Throws:
IOException - in case of I/O errors

supports

public boolean supports(URI uri)
Description copied from interface: WebServiceMessageSender
Does this WebServiceMessageSender support the supplied URI?

Specified by:
supports in interface WebServiceMessageSender
Parameters:
uri - the URI to be checked
Returns:
true if this WebServiceMessageSender supports the supplied URI

Spring Web Services Framework

Copyright © 2005-2010 The Spring Web Services Framework. All Rights Reserved.