Не удается запустить инструменты openjpa из командной строки - PullRequest
0 голосов
/ 16 марта 2019

Что я сделал:

  • загрузите и распакуйте последнюю версию 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 в качестве подкаталога, в котором находятся jar драйверов openjpa и mariadb

  • выполнила следующую команду:

    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, но это ничего не изменило.

...