Example: The FileTransferEJB

The File Transfer Protocol (FTP) defines a common language for exchanging data over network boundaries. Defined in RFC-959 (http://www.ietf.org/rfc/rfc959.txt), the specification mandates conversational state as part of the communication scheme; not all information required to service a request is present in the request itself. Because a session’s invocation history plays a role in how an FTP client will operate, the SLSB is not a valid implementation choice. These requirements lie right in the wheelhouse of the stateful session bean.

This example’s FTP client is covered in Appendix C. Most of the business logic contained in the bean implementation class has been stripped from the text in order to keep the focus upon SFSB semantics. All code is available in the appendix and from the companion website.

The simple operations we’ll implement are:

  • Print current directory (pwd)

  • Make directory (mkdir)

  • Change to directory (cd)

This will be enough to connect to an FTP server and interact with it a bit to show how conversational state is central to the design of the SFSB. Readers interested in extending the example to send files over the wire are encouraged to do so.

It’s important to consider the additional lifecycle phases of the stateful session bean, as compared with the simpler SLSB. Not all of a bean’s internal state is Serializable, and in the case of our FTP client, we need to explicitly handle the connection to the server. We won’t attempt to serialize this ...

Get Enterprise JavaBeans 3.1, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.