Spring Glassfish-> dependency -> no classdef found

F.S.WhiTeY

Bekanntes Mitglied
Moin ihr lieben,

ich hab gerade irgendwie ein kleines Problem mein Project zu deployen. Wenn ich den Glassfish anschmeiße, bekomme ich folgende Errors und er Bricht ab:

[XML]
WARNUNG: Error in annotation processing: java.lang.NoClassDefFoundError: org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport

WARNUNG: Error in annotation processing: java.lang.NoClassDefFoundError: org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport

SCHWERWIEGEND: Class [ com/mysema/query/dml/UpdateClause ] not found. Error while loading [ class org.springframework.data.jpa.repository.support.QueryDslRepositorySupport ]

WARNUNG: Error in annotation processing: java.lang.NoClassDefFoundError: org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport

WARNUNG: Error in annotation processing: java.lang.NoClassDefFoundError: org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport

SCHWERWIEGEND: Class [ com/mysema/query/dml/UpdateClause ] not found. Error while loading [ class org.springframework.data.jpa.repository.support.QueryDslRepositorySupport ]

[/XML]

Ich kann das allerdings nicht verstehen, die Klassen sind vorhanden. Ich hab in meiner pom.xml für den Maven2 folgende dependencys eingetragen, welche auf runtergeladen wurden:

[XML]
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-core</artifactId>
<version>2.7.0</version>
</dependency>
[/XML]

Ich hab mich im dependency-Ordner schon durchgeklickt und Händisch die
Code:
com/mysema/query/dml/UpdateClause
gefunden.

Jemand von euch ne Idee ?

LG

David
 

jwiesmann

Bekanntes Mitglied
Vielleicht ne blöde Frage, aber hast du deiner POM gesagt, dass dein Project ein WAR ist?
[XML] <packaging>war</packaging>[/XML] ?
Ansonsten packt maven die libs nämlich nicht mit ins JAR.
 

F.S.WhiTeY

Bekanntes Mitglied
Moin,

naja expliziet in der pom steht es nicht aber ich hab das als Maven-Web-Project unter Netbeans erstellt.
Im Normalfall macht Netbeans das dann automatisch aber ich werde es mal mit deinem Tag ausprobieren. Lusstig ist, dass beim Build keine Fehler auftreten.

Wenn es dann nicht klappt werd ich es noch mal auf nem Glassfish 3.1 und einem Tomcat 7.0.x versuchen und schauen was passiert.


Danke erstmal für deinen Tipp.


LG

David
 
M

maki

Gast
. Lusstig ist, dass beim Build keine Fehler auftreten.
Ein NoClassDefFoundError bedeutet, dass die Klasse zur Laufzeit nicht gefunden wird.
Im Gegensatz dazu bedeutet eine ClassNotFoundException, dass der Compiler die Klasse beim übersetzen nicht findet.

Maven kümmert sich in erster Linie um die Dependencies zur Buildzeit, offensichtlich ist da alles richtig.
Wenn dein Projekt richtig konfiguriert ist, wird Maven aber die Jars auch ins Artifakt (EAR, WAR) packen, da scheint der Wurm zu sein.

Suche mal im Artifakt (WAR/EAR) nach den Jars.

.. und zeig mal deine Pom, ohne können wir nur raten ;)
 

F.S.WhiTeY

Bekanntes Mitglied
Sooo,

erstmal Danke für eure Antworten. Das packing in die WAR, war schon angegen in der pom.

Ich poste, wie gewünscht, mal meine aktuelle pom.xml. Allerdings nehme ich der Übersicht halber mal die Dependencys raus, sonst wird die zu lang. Sollte jemand die dependencys expliziet sehen wollen, können wir das gerne nachholen.

pom.xml
[XML]

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>de.whitey</groupId>

<artifactId>PraxisMaven</artifactId>

<version>1.0-SNAPSHOT</version>

<packaging>war</packaging>

<name>PraxisMaven</name>

<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.springframework.version>3.1.1.RELEASE</org.springframework.version>
<netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
</properties>

<repositories>
<repository>
<id>EclipseLink Repo</id>
<url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url>
</repository>

<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>

</repositories>

<dependencies>
.....
</dependencies>

<build>
<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>

<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>6.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>

</execution>
</executions>
</plugin>
</plugins>
</build>

</project>

[/XML]

Danke schon mal

LG

David
 

Ähnliche Java Themen

Neue Themen


Oben