#openjpa
#openjpa
Вопрос:
Что я сделал:
-
загрузите и извлеките последнюю версию openjpa (3.0.0)
-
загрузите jar-файл драйвера mariadb jdbc и скопируйте его в тот же каталог, где openjpa-all-3.0.0.jar находится
-
внутри того же каталога создайте подкаталог META_INF и файл META-INF/persistence.xml со следующим содержимым:
<?xml version="1.0"?> <persistence version="1.0"> <persistence-unit name="openjpa"> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> <properties> <property name="openjpa.ConnectionURL" value="jdbc:mariadb://localhost:3306/databasename"/> <property name="openjpa.ConnectionDriverName" value="org.mariadb.jdbc.Driver"/> <property name="openjpa.ConnectionUserName" value="dbuser"/> <property name="openjpa.ConnectionPassword" value="dbpassword"/> <property name="openjpa.DynamicEnhancementAgent" value="false"/> <property name="openjpa.RuntimeUnenhancedClasses" value="supported"/> <property name="openjpa.Log" value="SQL=TRACE"/> <property name="openjpa.ConnectionFactoryProperties" value="PrettyPrint=true, PrettyPrintLineLength=120, PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=60000"/> </properties> </persistence-unit>
-
создайте пустой каталог src в качестве подкаталога, в котором находятся файлы openjpa и mariadb driver jars
-
выполнил следующую команду:
java -cp ./:openjpa-all-3.0.0.jar:mariadb-java-client-2.4.0.jar:openjpa-all-3.0.0.jar org.apache.openjpa.jdbc.meta.ReverseMappingTool -pkg some.package -d ./src
Вместо получения какого-либо вывода или ошибки, связанной с генерацией, я получаю:
8 INFO [main] openjpa.Tool - The reverse mapping tool will run on the database. The tool is gathering schema information; this process may take some time. Enable the org.apache.openjpa.jdbc.Schema logging category to see messages about schema data.
Exception in thread "main" <openjpa-3.0.0-r422266:1833209 fatal user error> org.apache.openjpa.util.UserException: The persistence provider is attempting to use properties in the persistence.xml file to resolve the data source. A Java Database Connectivity (JDBC) driver or data source class name must be specified in the openjpa.ConnectionDriverName or javax.persistence.jdbc.driver property. The following properties are available in the configuration: "org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl@f248234b".
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:71)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:850)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:879)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource2(JDBCConfigurationImpl.java:921)
at org.apache.openjpa.jdbc.schema.SchemaGenerator.<init>(SchemaGenerator.java:86)
at org.apache.openjpa.jdbc.meta.ReverseMappingTool.run(ReverseMappingTool.java:2027)
at org.apache.openjpa.jdbc.meta.ReverseMappingTool.run(ReverseMappingTool.java:2005)
at org.apache.openjpa.jdbc.meta.ReverseMappingTool.run(ReverseMappingTool.java:1882)
at org.apache.openjpa.jdbc.meta.ReverseMappingTool$1.run(ReverseMappingTool.java:1863)
at org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:762)
at org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:747)
at org.apache.openjpa.jdbc.meta.ReverseMappingTool.main(ReverseMappingTool.java:1858)
Что я делаю не так?
Я пробовал варианты этого, добавляя -p persistence.xml#openjpa, -p #openjpa и -connectionDriverName org.mariadb.jdbc.Driver в командную строку, но это не имело никакого значения.
Комментарии:
1. вы пробовали использовать проект maven? это должно упростить управление зависимостями
2. Требование заключается в том, чтобы очень конкретно не использовать maven.
3. вы пробовали указывать путь к классу в текущем каталоге? также используя полный путь?
4. Только что пробовал. Добавлены оба полных пути вместо / и указан каждый jar по его полному пути. Та же ошибка. Был бы удивлен, если бы была какая-либо разница.
5. я заглянул в свой проект, и хотя я использую mariadb, я фактически использую mysql connector (5.1.33). также я настроил свой источник данных с помощью TomEE, поэтому я ничего не определяю в persistence.xml . извините, я не смог вам помочь. вы пробовали использовать список рассылки?