此问题的解决方法需要操作系统为Windows。问题出在 WildFly 上安装的 Apache Derby 数据库驱动程序的版本。它不兼容 Jackrabbit_JCA 2.21.14。这可以通过在 Wildfly 中重新定义数据源的方式来解决。您需要首先清除和删除数据源,然后重新定义它。
以下是可以使用的命令示例:
清除和删除现有数据源: /subsystem=resource-adapters/resource-adapter=jackrabbit-jca11DS:remove() data-source remove --name=jackrabbit-jca11DS --profile=ha --server-config=ha-1
重新定义数据源:
/subsystem=resource-adapters/resource-adapter=jackrabbit-jca11DS:add
(subsystem=datasources/data-source=jackrabbit-jca11DS/:remove)
data-source add --name=jackrabbit-jca11DS
--driver-name=derby --jndi-name=java:jboss/jackrabbit/jca11DS
--connection-url=jdbc:derby:memory:jackrabbit61;create=true
--use-ccm=true
--min-pool-size=5 --max-pool-size=20 --transaction-isolation=TRANSACTION_READ_COMMITTED
--validate-on-match=true --background-validation=false --background-validation-millis=0
--capacity-decrementer-class-name=org.jboss.jca.core.connectionmanager.pool.capacity.DecreaseCapacity
--capacity-incrementer-class-name=org.jboss.jca.core.connectionmanager.pool.capacity.NullCapacity
--exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.derby.DerbyExceptionSorter
--idle-timeout-minutes=1 --new-connection-sql=SELECT 1
重新定义数据源时,请注意以下内容:
通过重新定义数据源,您应该能够解决在 WildFly 26.1.2 上使用 Jackrabbit_JCA 2.21.14 时遇到的 Apache Derby (10.14.2.0) 异常。