- All Known Implementing Classes:
- SampleSmsListener
public interface SmsListener
A service writer who wishes to receive responses to an SmsRequest#send()
operation will need to implement this interface.
This is accomplished by calling the SmsRequest#setListener(SmsListener)
method with the implementation.
Use Of the SMS API in an Enterprise Java Bean
When the SMS API is used in an Enterprise Java Bean (EJB), responses destined for the SmsListener may be delayed in their arrival and/or
appear to be "stuck" when certain coding patterns are used. An example of this type of coding pattern is the following:
A method on the EJB called "sendMySms" creates an SmsRequest and then invokes "SmsRequest.send()". The sendMySms method then waits for a
response to arrive at the SmsListener before returning control to the invoking software.
With this coding pattern the response may not be delivered to the listener as long as control remains in the sendMySms method. This
condition is a result of the EJB framework attempting to enforce a transaction. Since the SMS API makes use of the Collaboration Bus, it
is necessary to disable transaction processing when a coding pattern is used that leads to this condition. To disable transaction
processing, the following annotation can be added at the class level to the definition of the EJB:
@TransactionAttribute(value = TransactionAttributeType.NOT_SUPPORTED)