You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keycloak对接本地PostgreSQL启动时standalone.xml解析报错求助

问题根因

你遇到的启动失败是standalone.xml配置文件存在XML格式错误导致的,具体原因有两个:

  1. 最核心原因是粘贴配置时带入了不可见的零宽空格字符,错误提示里的Received non-all-whitespace CHARACTERS or CDATA event in nextTag()就是XML解析器识别到非预期字符后的报错,行号指向的就是配置中PostgreSQL驱动定义的位置,这些零宽空格肉眼无法识别,但会破坏XML结构。
  2. 其次KeycloakDS数据源的<pool>节点层级缩进存在错位,也可能触发解析校验失败。
解决方案

步骤1:清理非法字符并修正数据源配置

打开standalone.xml,找到datasources节点,手动重写所有新增的配置(不要直接复制粘贴网上的片段,避免再次带入不可见字符),修正后的配置参考如下:

<datasources>
    <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
        <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
        <driver>h2</driver>
        <security>
            <user-name>sa</user-name>
            <password>sa</password>
        </security>
    </datasource>
    <!-- 修正后的KeycloakDS配置 -->
    <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
        <connection-url>jdbc:postgresql://10.76.106.4:5432/keycloakSQL</connection-url>
        <driver>postgresql</driver>
        <pool>
            <max-pool-size>20</max-pool-size>
        </pool>
        <security>
            <user-name>KeycloakAdmin</user-name>
            <password>password</password>
        </security>
    </datasource>
    <drivers>
        <!-- 清理所有不可见字符后的PostgreSQL驱动配置 -->
        <driver name="postgresql" module="org.postgresql">
            <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
        </driver>
        <driver name="h2" module="com.h2database.h2">
            <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
        </driver>
    </drivers>
</datasources>

步骤2:验证模块配置

确认以下条件都满足:

  • PostgreSQL驱动jar包postgresql-42.2.23.jar已经放在Keycloak根目录下的modules/org/postgresql/main/路径中,和你写的module.xml同目录
  • PostgreSQL服务正常启动,端口5432可访问,keycloakSQL数据库已经提前创建,KeycloakAdmin用户拥有该数据库的全部操作权限

步骤3:重启验证

保存修改后的standalone.xml,重新执行standalone.bat启动Keycloak即可。

内容的提问来源于stack exchange,提问作者gtorgersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:27:03