Home | Download | PDF | API | FAQ | Search | Feedback | History

> ## Creating the Enterprise Bean

> The enterprise bean in our example is a stateless session bean called `ConverterBean`. The source code for `ConverterBean` is in the `<``INSTALL``>/javaeetutorial5/examples/ejb/converter/converter-ejb/src/java` directory.

> Creating `ConverterBean` requires these steps:

> 1. Coding the bean's business interface and class (the source code is provided)
> 2. Compiling the source code with `ant`

> ### Coding the Enterprise Bean

> The enterprise bean in this example needs the following code:

> - Remote business interface
> - Enterprise bean class

> #### Coding the Business Interface

> The business interface defines the business methods that a client can call. The business methods are implemented in the enterprise bean class. The source code for the `Converter` remote business interface follows.

>     package com.sun.tutorial.javaee.ejb;

>     import java.math.BigDecimal;
>     import javax.ejb.Remote;

>     @Remote
>     public interface Converter {
>       public BigDecimal dollarToYen(BigDecimal dollars);
>       public BigDecimal yenToEuro(BigDecimal yen);
>     }

> Note the `@Remote` annotation decorating the interface definition. This lets the container know that `ConverterBean` will be accessed by remote clients.

> #### Coding the Enterprise Bean Class

> The enterprise bean class for this example is called `ConverterBean`. This class implements the two business methods (`dollarToYen` and `yenToEuro`) that the `Converter` remote business interface defines. The source code for the `ConverterBean` class follows.

>     package com.sun.tutorial.javaee.ejb;

>     import java.math.BigDecimal;
>     import javax.ejb.*;

>     @Stateless
>     public class ConverterBean implements Converter {
>       private BigDecimal yenRate = new BigDecimal("115.3100");
>       private BigDecimal euroRate = new BigDecimal("0.0071");

>       public BigDecimal dollarToYen(BigDecimal dollars) {
>         BigDecimal result = dollars.multiply(yenRate);
>         return result.setScale(2, BigDecimal.ROUND_UP);
>       }

>       public BigDecimal yenToEuro(BigDecimal yen) {
>         BigDecimal result = yen.multiply(euroRate);
>         return result.setScale(2, BigDecimal.ROUND_UP);
>       }
>     }

> Note the `@Stateless` annotation decorating the enterprise bean class. This lets the container know that `ConverterBean` is a stateless session bean.

> ### Compiling and Packaging converter

> Now you are ready to compile the remote business interface (`Converter.java`) and the enterprise bean class (`ConverterBean.java`), and package the compiled classes into an enterprise bean JAR.

> 1. In a terminal window, go to this directory:

> `<``INSTALL``>/javaeetutorial5/examples/ejb/converter/`

> 2. Type the following command:

> `ant`

> This command calls the `default` task, which compiles the source files for the enterprise bean and the application client, placing the class files in the `build` subdirectories (not the `src` directory) of each submodule. Then the default task packages each submodule into the appropriate package file: `converter-app-client.jar` for the application client, `converter-ejb.jar` for the enterprise bean JAR, and `converter-war.war` for the web client. The web client in this example requires no compilation. For more information about `ant`, see Building the Examples (page xxxi).

> Note: When compiling the code, the preceding `ant` task includes the `javaee.jar` file in the classpath. This file resides in the `lib` directory of your Application Server installation. If you plan to use other tools to compile the source code for Java EE components, make sure that the classpath includes the `javaee.jar` file.