Это сводит меня с ума, и я шокирован тем, что официальная документация абсолютно бесполезна.
Вот что у меня есть:
- IntelliJ IDEA 11
- OpenJPA 2.1.1
Поскольку openjpa добавлен в список используемых библиотек, у меня уже был путь к классу к OpenJPA, который выглядит следующим образом
<path id="library.openjpa.classpath">
<fileset dir="${basedir}/lib/openjpa">
<patternset refid="library.patterns"/>
</fileset>
</path>
Согласно официальномудокументацию я добавил следующую цель
<target name="enhance">
<copy includeemptydirs="false" todir="${basedir}/lib/openjpa">
<fileset dir="src" excludes="**/*.launch, **/*.java"/>
</copy>
<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
<classpath refid="library.openjpa.classpath"/>
</taskdef>
<openjpac>
<classpath refid="library.openjpa.classpath"/>
</openjpac>
</target>
Это дает мне исключение
C: \ work \ prj \ build.xml: 283: org.apache.openjpa.util.MetaDataException:MetaDataFactory не может быть настроен (conf.newMetaDataFactoryInstance () возвратил ноль).Это может означать, что свойства конфигурации не найдены.Убедитесь, что у вас есть файл META-INF / persistence.xml, что он доступен в вашем classpath или файл свойств, который вы используете для конфигурации, доступен.Если вы используете Ant, посмотрите атрибуты или вложенного элемента задачи.Это также может произойти, если ваши дистрибутивные файлы OpenJPA повреждены или ваша политика безопасности слишком строгая.
Я протестировал с Process Monitor и может видеть, что он открываетсяи читает persistence.xml
.
Кто-то сообщил об ошибке , у меня возникли проблемы, и он получил ответ, что нахождение persistence.xml
не является источником проблемы.
Вопросы:
- Что я могу сделать, чтобы заставить его работать?
- Можно ли заставить его работать, пропустив необходимость для
persistence.xml
и просто указав шаблон для файлов .classЯ хочу быть улучшенным? - Это больше вопрос муравья.Как я могу заставить OpenJPA Enhancer искать
persistence.xml
в каталоге, отличном от того, где находится openjpa-2.1.1.jar
?