# EJB client JAR projects

An EJB client JAR project contains all the class files that a client program needs to use the client view of the enterprise beans that are contained in the EJB module.

With the EJB tooling, you can create an EJB project with a corresponding EJB client JAR project. The EJB project will depend on the EJB client JAR project. The EJB client JAR project contains all necessary classes for a client of the enterprise beans, including all interface classes, key classes, and supporting classes. Because these classes are not duplicated in the EJB project, the EJB project depends on its EJB client JAR project. Any project that has a reference to an enterprise bean in the EJB project will need a reference to the EJB client JAR project. If the EJB client JAR project is in another enterprise application, the EJB client JAR file must be added to the referencing EAR file as a utility JAR file. Use the Java™ JAR dependencies editor to update dependencies. Best practice is to only create references to the EJB project for backwards compatibility. See Specifying dependent JAR files or modules for more information.

After the EJB client JAR project is created, it is up to you to add any necessary value objects to this project that are needed by the home or component interfaces. If the objects are not present, compilation errors will result.

EJB client JAR files

EJB client projects are exported as EJB client JAR files when the application is exported. The EJB client JAR file is specified in the deployment descriptor of the EJB JAR file using the optional `ejb-client-jar` element. The value of the `ejb-client-jar` element is the path name specifying the location of the EJB client JAR file in the containing J2EE Enterprise Application Archive (.ear) file. The value of the path name is a URI relative to the EJB JAR file within the application.
Note: The relative URI path for the EJB client JAR file should be the same in all applications that the EJB project belongs to.

When you create an EJB client JAR project for an EJB project, the EJB client JAR file is added to the containing enterprise application as a project utility JAR. The reference to this EJB client JAR file cannot be removed from the enterprise application as long as the EJB project is defined as a module for the application.

Important: If you use the Export EJB JAR file wizard to export an EJB project, the export wizard does not include an EJB project's associated EJB client JAR project. To include the EJB client JAR file, it is recommended that you export the enterprise application EAR file that contains the EJB project. The resulting EAR file will include any dependent EJB client JAR files as utility JAR files. Alternatively, you can export the EJB client JAR project separately as a JAR file.

(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.