# EJB Programmer's Guide: EJB Packaging

## Target Audience and Content

The target audience for this guide is the Enterprise Bean provider, i.e. the person in charge of developing the software components on the server side. It describes how the bean components should be packaged.

The content of this guide is the following:

1. Target Audience and Content
2. Principles

## Principles

Enterprise Beans are packaged for deployment in a standard Java programming language Archive file, called an ejb-jar file. This file must contain the following:

The beans' class files
  The class files of the remote and home interfaces, of the beans' implementations, of the beans' primary key classes (if there are any), and of all necessary classes.
The beans' deployment descriptor
  The ejb-jar file must contain the deployment descriptors, which are made up of:
  - The standard xml deployment descriptor, in the format defined in the EJB 2.1 specification. Refer to `$JONAS_ROOT/xml/ejb-jar_2_1.xsd` or http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd . This deployment descriptor must be stored with the name META-INF/ejb-jar.xml in the ejb-jar file.
  - The JOnAS-specific XML deployment descriptor in the format defined in $JONAS_ROOT/xml/jonas-ejb-jar_X_Y.xsd. This JOnAS deployment descriptor must be stored with the name META-INF/jonas-ejb-jar.xml in the ejb-jar file.

### Example

Before building the ejb-jar file of the Account entity bean example, the java source files must be compiled to obtain the class files and the two XML deployment descriptors must be written.

Then, the ejb-jar file (OpEB.jar) can be built using the jar command:

        cd your_bean_class_directory
        mkdir META-INF
        cp .../eb/*.xml META-INF
        jar cvf OpEB.jar sb/*.class META-INF/*.xml