Creating the Enterprise Bean
The enterprise bean in our example is a stateless session bean called
ConverterBean
. The source code forConverterBean
is in the<
INSTALL
>/javaeetutorial5/examples/ejb/converter/converter-ejb/src/java
directory.Creating
ConverterBean
requires these steps:Coding the Enterprise Bean
The enterprise bean in this example needs the following code:
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 thatConverterBean
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
andyenToEuro
) that theConverter
remote business interface defines. The source code for theConverterBean
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 thatConverterBean
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.This command calls the
default
task, which compiles the source files for the enterprise bean and the application client, placing the class files in thebuild
subdirectories (not thesrc
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, andconverter-war.war
for the web client. The web client in this example requires no compilation. For more information aboutant
, see Building the Examples (page xxxi).
Note: When compiling the code, the preceding
ant
task includes thejavaee.jar
file in the classpath. This file resides in thelib
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 thejavaee.jar
file.