Keycloak 错误 - 无法识别的选项:--add-opens=java.base/java.util=ALL-UNNAMED

问题描述 投票:0回答:1

我必须尝试使用

Keycloak
版本
12
18
。但不幸的是,我应该只能使用链接下载
Keycloak
21 以上的版本 - https://www.keycloak.org/downloads-archive.html

我的应用程序允许我

create a realm
超过
web ui
。在该领域,客户可以配置自己的身份验证入口点,我的意思是他们自己的应用程序登录页面。

我在打开某些偏移 URL 时遇到问题,如果用户处于会话状态,通常会打开一个页面,否则再次登录时会打开该特定页面。但这并没有发生在他们称之为

OIDC

的已配置自定义领域上

为了查看,我应该在本地系统中重现该错误。为了使用选项

create a realm
,我必须首先配置
Keycloak

我在

Keycloak
上运行
JDK8
时遇到问题,它是支持的。如果我运行
Java 11
我会遇到这个问题,

Error: LinkageError occurred while loading main class io.quarkus.bootstrap.runner.QuarkusEntryPoint
        java.lang.UnsupportedClassVersionError: io/quarkus/bootstrap/runner/QuarkusEntryPoint has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

所以,我自己转向了

JDK8
。然而,我面临以下问题,

Unrecognized option: --add-opens=java. Base/java.util=ALL-UNNAMED
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

我正在从

kc.bat
目录运行
KeyCloak_Home\bin

这个错误来自keycloak版本

21.0.0
到最新版本 -
24.0.3

请帮我解决这个问题。

command-line java-8 keycloak
1个回答
0
投票

如果我正确理解您的问题,您想在本地计算机上本地运行 Keycloak 吗?在这种情况下,您可以使用 Docker 创建它并拉取映像,如下所示:

quay.io/keycloak/keycloak:23.0.0
。也许
24 
也有效,但我还没有测试过。那么整个 Docker YAML 将如下所示:

version: '3'
services:
  mysql:
    image: docker.io/mariadb:11
    environment:
      MARIADB_DATABASE: ${KEYCLOAK_DB_NAME}
      MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
      MARIADB_PASSWORD: ${KEYCLOAK_DB_PASSWORD}
      MARIADB_USER: ${KEYCLOAK_DB_USER}
    volumes:
      - mariadb-data:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      MYSQL_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
    ports:
      - "9080:80"
    depends_on:
      - mysql

  keycloak:
    image: quay.io/keycloak/keycloak:23.0.0
    environment:
      keycloak.url: http://keycloak:8888
      KC_HOSTNAME: localhost
      KC_HOSTNAME_PORT: 8888
      KC_HOSTNAME_STRICT_BACKCHANNEL: "true"
      KC_DB: mariadb
      KC_DB_URL: jdbc:mariadb://mysql:3306/${KEYCLOAK_DB_NAME}?characterEncoding=UTF-8
      KC_DB_USERNAME: ${KEYCLOAK_DB_USER}
      KC_DB_PASSWORD: ${KEYCLOAK_DB_PASSWORD}
      KEYCLOAK_ADMIN: ${KEYCLOAK_USER}
      KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_PASSWORD}
      KC_HEALTH_ENABLED: true
      KC_LOG_LEVEL: info
      KC_HOSTNAME_STRICT_HTTPS: false
      HOSTNAME_STRICT: false
      KC_HOSTNAME_STRICT: false
      KC_HTTP_ENABLED: true
      KC_LOG: console
      KC_PROXY: none
    depends_on:
      - mysql
    command:
      - "start-dev"
      - "--http-port=8888"
    ports:
      - "8888:8888"
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:8888/health/ready" ]
      interval: 15s
      timeout: 2s
      retries: 15
volumes:
  mariadb-data:

现场说明,我自己没有创建这个 yaml,它是从这里的另一篇文章中创建的,但我忘记了问题

您还可以从该图像中删除 phpmyadmin,我们刚刚用它来调试案例

© www.soinside.com 2019 - 2024. All rights reserved.