Wie von @ user353852 erwähnt, enthält Ihre aktuelle Abhängigkeit nur die Java EE 6-APIs und enthält keine Methodenkörper. Sie können also keinen Code dagegen ausführen. Um Ihren Code außerhalb eines Behälter auszuführen, benötigen Sie eine „konkrete“ Abhängigkeit zu erhalten (von Glassfish-Repository):
<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>
Beachten Sie, dass solche Abhängigkeiten sollten nicht mit einem compile
Umfang deklariert werden, wollen Sie nicht zu bündeln Sie es (es sollte provided
oder vielleicht test
sein, aber nicht compile
oder runtime
).
Ich frage mich, hat der Anbieter der JavaEE Umsetzung wichtig? Im Allgemeinen benutze ich Apache-Server, daher ist es großartig, dieselbe javaee-Implementierung wie auf dem Server zu haben.
In der Theorie, nein. In der Praxis würde ich jedoch empfehlen, die Implementierungs-JARs von dem Server zu verwenden, den Sie verwenden werden (oder von der Java-EE-Referenzimplementierung). Da Sie Java EE 6 verwenden, bedeutet dies in beiden Fällen JARS von GlassFish v3.
Die zweite Frage ist viel wichtiger. javax.servlet ist nur ein Teil der javaee-api Implementierung, wo finde ich die anderen. Jetzt brauche ich "javax/validation/Validation".
Für die API Bean Validation, müssen Sie die folgende (Hibernate Validator die RI ist):
<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>
Wie kann ich feststellen, welche Artefakt jeden Aspekt von JavaEE implementiert. Vielleicht gibt es irgendwo eine Art "Karte"?
Nichts offizielles, aber this nice answer von BalusC wird helfen.
Danke, es funktioniert! – Denis
Pascal, kannst du mir ein bisschen mehr helfen?Ich frage mich, ist der Anbieter der Java-Implementierung wichtig? Im Allgemeinen benutze ich Apache-Server, daher ist es großartig, dieselbe javaee-Implementierung wie auf dem Server zu haben. Aber es ist nicht so wichtig. Die zweite Frage ist viel wichtiger. javax.servlet ist nur ein Teil der javaee-api Implementierung, wo finde ich die anderen. Jetzt brauche ich "javax/validation/Validation". Wie kann ich feststellen, welches Artefakt jeden Aspekt von javaee implementiert? Vielleicht gibt es irgendwo eine Art "Karte"? – Denis
Ich fand "http://maven.apache.org/guides/mini/guide-coping-with-sun-jars.html", aber es scheint, dass sie den Inhalt des Repositories geändert haben, weil ich "javax" nicht gefunden habe. j2ee: j2ee "Artefakt, das auf dieser Seite erwähnt wurde. – Denis