How do I add EJB capabilities to an Eclipse dynamic web project?

20,227

Solution 1

  1. Create an new Enterprise Application Project (EAP)
  2. Create an new EJB Project and add it to the EAP
  3. Add to the EAP your existent WEB project

Now you can create EJBs in the EJB project and call them from the WEB project.

And you can deploy or debug your EAP on an Application Server (like JBoss) that supports Enterprise Application Projects. The EAP is deployed as a unique file with .ear extension.

If you use Tomcat for example you cannot deploy the ear packages.

Here a page with a description about creating ear with Eclipse.

Solution 2

A simple way to add eclipse library support for TomEE or TomEE+ is the following:

  1. Create a Tomcat 7 server in eclipse. (Change the name to reflect it's TomEE)
  2. Point it to your tomEE install directory.
  3. In your project goto: Properties -> Java Build Path -> Libraries.
  4. Press "Add library".
  5. Select "Server runtime", and press next.
  6. Select the TomEE server profile you just created and click finish.
  7. Click OK.

The tomEE libraries have been added to your eclipse project.

Share:
20,227
Ragini
Author by

Ragini

Updated on November 07, 2020

Comments

  • Ragini
    Ragini over 3 years

    I am developing a simple application with EJB 3.0 using OpenEJB for deployment and Eclipse as an IDE.

    I created the project as a 'dynamic web application' in Eclipse. When I tried creating the first stateless session bean, I realized that the @Remote annotation could not be resolved.

    What is the right way to fix this problem ?

    1. Delete the project and create a new 'enterprise application project' (this seems to be pretty heavy weight, so I am not sure I want to go in this direction) ?
    2. Delete the project and create an EJB project (this does not seem to be right because I believe such a project will only let me bundle the EJB part of the application) ?
    3. Add some libraries to my existing project (is there a library pack for EJB 3.x) ?
    4. Add a facet to my existing project (I tried to see if I can add a facet, but I cannot see an EJB facet within the context of this project) ?

    Thanks for helping.

    Update: I found the answer.

    TomEE's installation has a directory containing all the jar files needed to compile and run EJB's 'apache-tomee-webprofile-1.0.0-beta-2/webapps/openejb/lib'

    I created a User Library in Eclipse containing all the jars from the lib folder described above and added it to the build path.

    The EJB interfaces now compile properly.