mysql - 尝试在 JBOSS 上安装 EJBCA 时出现问题 - 为什么 Mysql 数据库 ("ejbca") 为空

标签 mysql hibernate jboss ejbca

我正在尝试在 JBOSS 7.2 上安装 EJBCA 6.15.2.1,基本上遵循 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”,并且它起作用了。

因此,通过谷歌搜索(例如 GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement ),我认为这是 hibernate 配置使用的“方言”的问题,似乎我应该在某些 hibernate 配置文件中修改它,但我是不确定那可能在哪里。熟悉 Hibernate、方言和 ejbca/jboss 的人可以告诉我应该在哪个文件中更改该方言吗?

编辑2:顺便说一句,看起来我使用的Mysql是5.7.26。

最佳答案

查看 https://docs.jboss.org/hibernate/orm/5.3/javadocs/org/hibernate/dialect/package-summary.html看来你应该使用org.hibernate.dialect.MySQL57Dialect。您应该配置此方言。

关于mysql - 尝试在 JBOSS 上安装 EJBCA 时出现问题 - 为什么 Mysql 数据库 ("ejbca") 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56719816/

相关文章:

mysql - SQL联合查询需要添加到

python - 为什么我不能在 MYSQL 中执行此 INSERT? ( python MySQLdb)

java - 修改注释以避免 `unique constraint or index violation` 错误?

java - JBoss,IntelliJ IDEA,部署爆耳,子部署不起作用

java - org.picketlink.distribution :picketlink-jbas7:jar:2. 8.0 的 POM。缺失,没有可用的依赖信息

java - @Resource 没有在 jboss 7 中注入(inject) SessionContext

php - Post 方法总是不返回任何内容

MySql 动态列名

java - Hibernate 查询语法异常 : Not Mapped

java - Spring 中事务的传播是不稳定的