Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven: javaee-api vs jboss-javaee-6.0

I want a Java JEE6 project built with maven, and I want it standard

So, I put this in my pom.xml:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

A project like this, it is supposed to run in every JEE6 container compatible (jboss, geronimo, glashfish, etc.)

Then, why this jboss dependency exists?

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>3.0.2.Final</version>
    <scope>provided</scope>
 </dependency>

If I use it, am I tied to jboss so I can only use this server with this application?

Is it not preferable to always use the standard javaee-api?

Thank you!

like image 485
david24365 Avatar asked Mar 20 '13 07:03

david24365


Video Answer


1 Answers

The standard api is crippled, i. e. method bodies are missing. This turns out when testing. I have once run into this pitfall and was not very happy with it.

Therefore it is advisiable to use another package as reference.

You can have a closer look on Adam Biens Blog

You can also make profiles for different deployment environments if you really need. However, essentially I agree, this is sadly not a very pleasant circumstance.

For having issues with testing, you can have a look at this thread.

Edit:
By the way, since now this might be interessting. This issue is gone for the javaee-(web-)api for Java EE 7 (source)

like image 76
omilke Avatar answered Sep 18 '22 12:09

omilke