2013-06-23 5 views
0

У меня проблема, вызванная нехваткой знаний. Я использую OpenJPA как реализацию JPA и сервер Tomcat для запуска моего приложения, также я использую Idea12 как ide.Как я могу попросить Tomcat взять мои расширенные классы OpenJPA?

У меня есть задача - обеспечить открытое jpa-расширение при сборке. Для достижения этой цели, прежде всего, я отрицаю OpenJPA для повышения объектов во время выполнения путем добавления этого свойства в моей persistence.xml:

<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/> 

Теперь OpenJPA не будет расширения классов во время выполнения, как я хочу.

После этого я пишу цель для улучшения в файле ant-build.xml. Он отлично работает и создает/создает каталог с скомпилированными классами. Если я посмотрю на скомпилированный код, я вижу там дополнительные поля для OpenJPA - pcStateManager и другие. Хорошо, это здорово.

И теперь проблема - когда я запускаю Tomcat через Idea, это не требует моих расширенных классов. Я думаю, что Tomcat даже не знает, что я улучшил свои занятия. Похоже, что он снова компилирует код и запускает приложение с неуправляемыми классами. И точно, есть исключение, когда я начинаю работать с базой данных.

Итак, можно ли настроить Tomcat, чтобы он взял мои классы из каталога/build?

P.S. Я также попытался использовать некоторые плагины Idea для улучшения, но они не решили проблему - у меня было такое же исключение, что классы не были расширены.

upd Оба плагина улучшают идею: усилитель OpenJPA и интеграция данных с расширением OpenJPA не решают проблему. Поэтому это заставляет меня думать, что что-то идет не так. Может быть, главная проблема - настройки tomcat?

ответ

0

Если кому-то интересно - вот решение:

  1. вам необходимо открыть вам Idea Структура # проекта и выберите модуль, который содержит ваши классы

  2. вам нужно переключить " output "из« Inherit project compile output »в« Использовать путь компиляции компиляции »и указать каталог с расширенными классами

  3. Это все, теперь, когда Tomcat будет строить WAR-файл, он возьмет ваш усилитель ced классы. Удачи.