Según lo mencionado por @ user353852, su dependencia actual solo contiene las API de Java EE 6 y no contiene ningún cuerpo de método. Entonces no puedes ejecutar código en contra de eso. Para ejecutar el código fuera de un contenedor, que necesita para obtener una dependencia "concreto" (desde el repositorio GlassFish):
<repositories>
<repository>
<id>glassfish-repository</id>
<url>http://download.java.net/maven/glassfish</url>
</repository>
...
</repositories>
<dependencies>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.servlet</artifactId>
<version>3.0</version>
<scope>test</scope>
</dependency>
...
</dependencies>
Tenga en cuenta que dichas dependencias no deben ser declaradas con un alcance compile
, que no quiere agruparlo (debe ser provided
o quizás test
, pero no compile
o runtime
).
Me pregunto ¿Tiene el proveedor de la aplicación JavaEE importante? En general, uso servidores Apache, por lo que sería genial tener la misma implementación javaee que en el servidor.
En teoría, no. Pero en la práctica, recomendaría utilizar los JAR de implementación del servidor que va a utilizar (o de la implementación de referencia de Java EE). Dado que está utilizando Java EE 6, esto en realidad significa JARS de GlassFish v3 en ambos casos.
La segunda pregunta es mucho más importante. javax.servlet es solo una parte de la implementación de javaee-api, donde puedo encontrar los demás. Ahora necesito "javax/validation/Validation".
Para la API Bean Validation, necesitará lo siguiente (Hibernate Validator ser el RI):
<repositories>
<!-- For Hibernate Validator -->
<repository>
<id>jboss</id>
<name>JBoss repository</name>
<url>http://repository.jboss.org/maven2</url>
</repository>
...
</repositories>
<dependencies>
<!-- Bean Validation API and RI -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.2.GA</version>
<scope>runtime</scope>
</dependency>
...
</dependencies>
¿Cómo puedo determinar qué artefacto implementa cada aspecto de JavaEE. ¿Tal vez hay algún tipo de "mapa" en alguna parte?
Nada de oficial, pero this nice answer de BalusC ayudará.
¡Gracias, funciona! – Denis
Pascal, ¿me pueden ayudar un poco más?Me pregunto si el proveedor de la implementación de javaee es importante. En general, uso servidores Apache, por lo que sería genial tener la misma implementación javaee que en el servidor. Pero no es tan importante. La segunda pregunta es mucho más vital. javax.servlet es solo una parte de la implementación de javaee-api, donde puedo encontrar los demás. Ahora necesito "javax/validation/Validation". ¿Cómo puedo determinar qué artefacto implementa cada aspecto de javaee? ¿Tal vez hay algún tipo de "mapa" en alguna parte? – Denis
Encontré "http://maven.apache.org/guides/mini/guide-coping-with-sun-jars.html" pero parece que han cambiado el contenido del repositorio, porque no pude encontrar "javax". j2ee: j2ee "artefacto que se mencionó en esta página. – Denis