我试图按照以下方式配置PostgresSQL数据源 文档中提供的教程: http://www.keycloak.org/docs/1.9/server_installation_guide/topics/database.html 。 我正在通过运行来为独立服务器进行配置 standalone.bat并通过配置所有内容 keycloak-3.0.0.Final/standalone/configuration/standalone.xml。
我按照文档的步骤进行操作,但是我得到了以下信息 错误每次都运行standalone.bat,因此我无法连接到数据库。
15:33:11,684 ERROR [org.jboss.as.controller.management-operation]
(Controller Boot Thread) WFLYCTL0013: Operation ("add"
) failed - address: ([
("subsystem" => "datasources"),
("data-source" => "KeycloakDS")
]) - failure description: {"WFLYCTL0180: Services with
missing/unavailable dependencies" => [
"org.wildfly.data-source.KeycloakDS is missing
[jboss.jdbc-driver.postgres-driver]",
"jboss.driver-demander.java:jboss/datasources/KeycloakDS is missing
[jboss.jdbc-driver.postgres-driver]"
]}
15:33:11,687 ERROR [org.jboss.as.controller.management-operation]
(Controller Boot Thread) WFLYCTL0013: Operation ("add"
) failed - address: ([
("subsystem" => "datasources"),
("data-source" => "KeycloakDS")
]) - failure description: {"WFLYCTL0180: Services with
missing/unavailable dependencies" => [
"org.wildfly.data-source.KeycloakDS is missing
[jboss.jdbc-driver.postgres-driver]",
"jboss.driver-demander.java:jboss/datasources/KeycloakDS is missing
[jboss.jdbc-driver.postgres-driver]",
"org.wildfly.data-source.KeycloakDS is missing
[jboss.jdbc-driver.postgres-driver]"
我尝试过不同版本的JDBC驱动程序: https://jdbc.postgresql.org/,但无济于事,甚至没有用 使用文档中提到的版本。
此时我被困了,因为我的配置文件看起来很像 在文档中。我到底能错过什么?是个 文档是最新的?
你无法找到同样的问题 - http://lists.jboss.org/pipermail/keycloak-user/2017-March/010120.html, 但在那里找不到任何解决方案,所以在这里重新发布。答案 0 :(得分:2)
我使用jboss-cli.sh
(或.bat,如果你在Windows上)来为我管理这个。 Keycloak已停止,您的PATH
包括$KEYCLOAK_HOME/bin
我将下面的脚本放入文件中(例如:config_db.cli):
embed-server --server-config=standalone.xml --std-out=echo
batch
#
# remove the default provided datasource
#
/subsystem=datasources/data-source=KeycloakDS/:remove
#
# add it back using PostgreSQL
#
module add --name=org.postgres --resources=/path/to/your/postgresql-42.1.4.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
/subsystem=datasources/data-source=KeycloakDS/:add(connection-url=jdbc:postgresql://localhost:5432/db_name,driver-name=postgres,jndi-name=java:jboss/datasources/KeycloakDS,password=db_password,user-name=db_user)
run-batch
使用bin/jboss-cli.sh --file=config_db.cli
请注意,这假设您已经创建了一个PostgreSQL数据库用户(上面为db_user
),其密码(db_password
)和db_user(db_name
)拥有的数据库。 / p>
通过这种方式,我可以在本地计算机上以与在服务器上相同的方式创建数据源。
修正:运行jboss-cl.sh的格式为: bin / jboss-cli.sh --file = filename