java 404 -找不到页面

vaj7vani  于 2023-02-28  发布在  Java
关注(0)|答案(7)|浏览(223)

我正在尝试在我的电脑上安装Keycloak。我已经安装了Java 8 JDK。
运行\bin\standalone.bat后,当我转到127.0.0.1:9990/auth页时,返回错误
404-页面未找到

2admgd59

2admgd591#

我为域设置了一个“前端URL”(Keycloak Admin Console > Realm Settings > General Frontend Url),如下所示:http://localhost:8080,而客户端的“根URL”为http://localhost:8080/auth
删除“前端URL”后,一切正常。另一个解决方案是将两个字段都设置为http://localhost:8080/auth

b4qexyjb

b4qexyjb2#

  • Keycloak * 的正确端口是8080。* 9990 * 是用于 * Wildfly * 管理的端口。

使用http://localhost:8080/auth

dgsult0t

dgsult0t3#

我遇到了同样的问题,然后注意到当我启动standalone .bac时,在提示符的开头它说“JBOSS_HOME可能指向不同的安装-可能会出现不可预测的结果",如果是这样的话,就删除JBOSS_HOME环境变量。我用这种方法解决了这个问题。(我不知道这个解决方案有多好,但我没有其他方法使它工作)

oyt4ldly

oyt4ldly4#

我在Docker内部的Ubuntu映像上运行Keycloak时遇到了这个问题。对我有效的是添加-b 0.0.0.0参数。
因此,可以尝试运行以下命令:bin/standalone.sh -b 0.0.0.0
您可以访问位于localhost:8080的控制台

i86rm4rw

i86rm4rw5#

在我的例子中,当我将--http-relative-path=/auth添加到run命令中时,它运行得很好,因此我的docker-compose文件是:

version: '3.8'
services:
  keycloak:
    image: quay.io/keycloak/keycloak:19.0.1
    command: ['start-dev --import-realm --http-relative-path=/auth']
    volumes:
      - ./realm-config:/opt/keycloak/data/import
    environment:
      - KC_DB=dev-file
      - KEYCLOAK_ADMIN=administrator
      - KEYCLOAK_ADMIN_PASSWORD=not-my-password
      - KC_FEATURES=scripts
      - KC_HTTP_PORT=9080
      - KC_HTTPS_PORT=9443
    ports:
      - 127.0.0.1:9080:9080
      - 127.0.0.1:9443:9443
zwghvu4y

zwghvu4y6#

如果你选中keycloak documentation,你会得到关于端口的详细信息,你可以修改,以及只有条件,该端口不应该被任何其他应用程序捕获。

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
        <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
        <socket-binding name="http" port="${jboss.http.port:8080}"/>
        <socket-binding name="https" port="${jboss.https.port:8443}"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
    </socket-binding-group>

因此,默认端口http8080https8443

mfpqipee

mfpqipee7#

在我的例子中,我读到的文档没有提到在添加数据库时编辑<default-bindings .... datasource=...。server.log显示了错误的数据源名称'ExampleDS',这已经足够清楚了:

2021-11-15 18:32:29,302 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("deployment" => "keycloak-server.war")]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jboss.datasources.ExampleDS"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.auth.auth.DefaultDataSource is missing [jboss.naming.context.java.jboss.datasources.ExampleDS]"]
}

所以我修复了这个问题......并且无法连接到数据库,因为我的数据库没有监听它使用的地址。

Caused by: org.postgresql.util.PSQLException: Connection to <host_goes_here>:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

重新配置PostgreSQL修复了以下问题:
/etc/后数据库/12/main/后数据库配置文件

listen_addresses = '*'

/etc/数据库配置文件/12/main/pg_hba.conf

host    keycloak    keycloak     <ip_goes_here>/32    <method_goes_here>

仅供参考,除了查看配置之外,您还可以使用以下内容来查看它监听的内容:

lsof -Pni | grep java
ss -ltp | grep java
netstat -lantp | grep java

相关问题