Проблема с попыткой установить EJBCA на JBOSS. Почему база данных Mysql (ejbca) пуста

Я пытаюсь установить EJBCA 6.15.2.1 на JBOSS 7.2, в основном следуя информации об установке на веб-сайте ejbca.org. Я использую Mysql в качестве базы данных.

Я могу выполнить этап развертывания (https://www.ejbca.org/docs/Deploying_EJBCA.html) - "ant -q clean deployear" успешно. Однако, когда я пытаюсь запустить этап установки (https://www.ejbca.org/docs/Installing_EJBCA_as_a_CA_with_a_Management_CA.html) - "ant runinstall", я получаю некоторые ошибки, например:

18:48:18,338 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "ejbca.ear")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.subunit.\"ejbca.ear\".\"ejbca-ejb.jar\".component.StartupSingletonBean.START" => "java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
    Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
    Caused by: javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    Caused by: java.sql.SQLSyntaxErrorException: Table 'ejbca.RoleData' doesn't exist"}}

Итак, я проверял базу данных в Mysql, и похоже, что эта база данных совершенно пуста!

Кто-нибудь знает, что должно заполнить эту базу данных "ejbca"? Должен ли быть какой-то инструмент или скрипт, заполняющий схему и т. д., который мне может не хватать?

Спасибо, Джим

РЕДАКТИРОВАТЬ 1: я думаю, что возможно нашел хотя бы часть своей проблемы. В логах нашел вот это:

05:15:22,282 WARN  [org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl] (ServerService Thread Pool -- 56) GenerationTarget encountered exception accepting command : Error executing DDL "create table AccessRulesData (pK INT(11) not null, accessRule VARCHAR(250) BINARY not null, isRecursive TINYINT(4) not null, rowProtection LONGTEXT, rowVersion INT(11) not null, rule INT(11) not null, AdminGroupData_accessRules INT(11), primary key (pK)) type=MyISAM" via JDBC Statement: org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table AccessRulesData (pK INT(11) not null, accessRule VARCHAR(250) BINARY not null, isRecursive TINYINT(4) not null, rowProtection LONGTEXT, rowVersion INT(11) not null, rule INT(11) not null, AdminGroupData_accessRules INT(11), primary key (pK)) type=MyISAM" via JDBC Statement
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559)

Итак, я попробовал «создать таблицу» в mysql и получил ошибку. Затем я попробовал «создать таблицу», но использовал «ENGINE = MyISAM» вместо «type = MyISAM», и это сработало.

Итак, из поиска в Google (например, GenerationTarget обнаружил команду принятия исключения: Ошибка выполнения DDL через оператор JDBC), я думаю, что это проблема с «диалектом», который настроен на использование гибернации, и кажется, что я должен изменить это в каком-то файле конфигурации гибернации, но я не уверен, где это возможно. Может ли кто-нибудь, кто знаком с Hibernate, диалектами и ejbca/jboss, сказать мне, в каком файле я должен изменить этот диалект?

РЕДАКТИРОВАТЬ 2: Кстати, похоже, что Mysql, который я использую, - 5.7.26.


person user555303    schedule 22.06.2019    source источник


Ответы (1)


Глядя на https://docs.jboss.org/hibernate/orm/5.3/javadocs/org/hibernate/dialect/package-summary.html кажется, что вы должны использовать org.hibernate.dialect.MySQL57Dialect. Вы должны настроить этот диалект.

person ehsavoie    schedule 24.06.2019