javax.persistence в java-6-openjdk - PullRequest
       27

javax.persistence в java-6-openjdk

2 голосов
/ 19 ноября 2010

Я пытаюсь выполнить сборку проекта Spring Roo (= Spring MVC + aspectj + hibernate) на моем сервере интеграции hudson.

Проект настроен для использования

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

Сборка с моим локальным maven работает нормально, но среда на сервере, похоже, внедряет какую-то другую версию javax.persistence, что приводит к следующим ошибкам:

[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>)

Сборка выполняется с помощью maven, и ее конфигурацияis:

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: я не использовал ту же версию roo локально и на сервере:)

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

Вы используете JPA2 в своем проекте?

JPA2 является частью Java EE 6, и, как я вижу, вы используете этот метод:

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

Этот метод не существует в JPA1 (Java EE 5), что можно увидеть, изучив EntityManager , где только

Query createQuery(String qlString)

существует.

Все это означает, что Хадсон использует javax.persistence для JPA1. Я не использовал Hudson, поэтому вам придется выяснить, сможете ли вы использовать его javax.persistence для JPA2.

0 голосов
/ 19 ноября 2010

Странно, что он работает локально.

У вас есть зависимость от JPA 1, но вы используете методы JPA 2 (createQuery(query, class)).

Проверьте локальный путь к классам.

...