2010-11-19 11 views
2

Ich versuche den Build eines Spring Roo-Projekts (= Spring MVC + aspectj + hibernate) auf meinem Hudson Integration Server durchzuführen.javax.persistence in java-6-openjdk

Das Projekt wird tuen

<dependency> 
<groupId>javax.persistence</groupId> 
<artifactId>com.springsource.javax.persistence</artifactId> 
<version>1.0.0</version> 
</dependency> 

Der Build mit meinem lokalen Maven funktioniert gut, aber die Umgebung auf dem Server scheint konfiguriert eine andere Version von javax.persistence zu injizieren, die auf diese Fehler führen:

[ERROR] The method createQuery(String) in the type EntityManager is not applicable for the arguments (String, Class<Long>) 
[ERROR] The method createQuery(String) in the type EntityManager is not applicable for the arguments (String, Class<Folder>) 

Der Build wird mit maven lief und es ist Konfiguration ist:

Apache Maven 2.2.1 (rdebian-4) 
Java version: 1.6.0_18 
Java home: /usr/lib/jvm/java-6-openjdk/jre 
Default locale: en_US, platform encoding: ANSI_X3.4-1968 
OS name: "linux" version: "2.6.32-5-amd64" arch: "amd64" Family: "unix" 

edit: Ich habe nicht die gleiche Version von Roo lokal und auf dem Server :)

Antwort

3

Verwenden Sie JPA2 in Ihrem Projekt?

JPA2 ist Teil der Java EE 6, und von dem, was ich sehe, Sie verwenden this Methode:

<T> TypedQuery<T> createQuery(java.lang.String qlString, java.lang.Class<T> resultClass) 

Diese Methode existiert nicht in JPA1 (Java EE 5), wie Sie sehen können durch Prüfung 0123,, wo nur

Query createQuery(String qlString) 

existiert.

All dies bedeutet, dass Hudson für JPA1 verwendet. Ich habe Hudson nicht benutzt, also müssen Sie herausfinden, ob Sie für JPA2 verwenden können.

+0

Gute Analyse (+1). Aber ich glaube nicht, dass das Problem bei Hudson liegt. Ich denke, die Abhängigkeit maven ist falsch –

+1

Ich habe mein Problem gefunden! Roo tatsächlich Code für Sie generieren. Auf meinem lokalen Rechner habe ich Roo 1.0.1 verwendet, das JPA1-Code generiert und eine Persistenz v1-Abhängigkeit hinzufügt. Aber auf dem Server habe ich Roo 1.1 installiert, die JPA2-Code generiert und versucht, auf der Grundlage meiner committed pom.xml zu kompilieren. – Nicolas

0

Was ist seltsam ist, dass es lokal funktioniert.

Sie haben eine Abhängigkeit von JPA 1, verwenden jedoch Methoden von JPA 2 (createQuery(query, class)).

Überprüfen Sie Ihren lokalen Klassenpfad.

Verwandte Themen