无法在 Wildfly 中部署 keyclock 快速入门示例战争

Posted

技术标签:

【中文标题】无法在 Wildfly 中部署 keyclock 快速入门示例战争【英文标题】:Not able to deploy keyclock quickstart example war in wildfly 【发布时间】:2020-09-05 22:28:52 【问题描述】:

我无法重现 tutorial 在 Wildfly 上部署此应用程序。

我下载了wildfly并启动wildfly-19.1.0.Final/bin/standalone.sh

当我从项目目录mvn clean wildfly:deploy 执行时,我得到了这个错误

15:12:55,016 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.module.service."deployment.app-authz-jee-vanilla.war".main: org.jboss.msc.service.StartException in service jboss.module.service."deployment.app-authz-jee-vanilla.war".main: WFLYSRV0179: Failed to load module: deployment.app-authz-jee-vanilla.war
    at org.jboss.as.server@11.1.1.Final//org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:116)
    at org.jboss.msc@1.4.11.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
    at org.jboss.msc@1.4.11.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
    at org.jboss.msc@1.4.11.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at org.jboss.threads@2.3.3.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.jboss.modules.ModuleNotFoundException: org.keycloak.keycloak-authz-client
    at org.jboss.modules.Module.addPaths(Module.java:1266)
    at org.jboss.modules.Module.link(Module.java:1622)
    at org.jboss.modules.Module.relinkIfNecessary(Module.java:1650)
    at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:299)
    at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:283)
    at org.jboss.as.server@11.1.1.Final//org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:93)
    ... 8 more

15:12:55,021 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 1) WFLYCTL0013: Operation ("add") failed - address: ([("deployment" => "app-authz-jee-vanilla.war")]) - failure description: "WFLYCTL0080: Failed services" => "jboss.module.service.\"deployment.app-authz-jee-vanilla.war\".main" => "WFLYSRV0179: Failed to load module: deployment.app-authz-jee-vanilla.war
    Caused by: org.jboss.modules.ModuleNotFoundException: org.keycloak.keycloak-authz-client"
15:12:55,022 ERROR [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0021: Deploy of deployment "app-authz-jee-vanilla.war" was rolled back with the following failure message: 
"WFLYCTL0080: Failed services" => "jboss.module.service.\"deployment.app-authz-jee-vanilla.war\".main" => "WFLYSRV0179: Failed to load module: deployment.app-authz-jee-vanilla.war
    Caused by: org.jboss.modules.ModuleNotFoundException: org.keycloak.keycloak-authz-client"
15:12:55,034 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0028: Stopped deployment app-authz-jee-vanilla.war (runtime-name: app-authz-jee-vanilla.war) in 11ms

我尝试在 docker wildfly 和其他示例应用程序上运行并且工作正常。我没有任何java经验。我该怎么做才能启动并运行此应用?

【问题讨论】:

你在 WildFly 中安装了 keycloak 吗? 面临同样的问题。 keycloak 独立版(与 Wildfly 捆绑在一起)是我使用的 Wildfly。我没有在 Wildfly 模块或快速入门战争中找到与 org.keycloak.keycloak-authz-client 相关的 jar 文件和 module.xml。所以这可能是 keycloak-10.0.1 中缺少的模块 @JamesR.Perkins 我不这么认为,我只是按照我提到的教程进行操作......我怎样才能做到这一点? @Chamil 我在哪里可以找到它? 您需要查看 Keycloak 文档 keycloak.org。你肯定需要安装 Keycloak 才能工作。 【参考方案1】:

使用命令 wildfly-19.1.0.Final/bin/standalone.sh,您正在 Wildfly 上运行 keycloak。

请使用不同的 Wildfly 服务器来托管您的 servlet 应用程序。要与另一台服务器上运行的 Keycloak 通信,您需要在运行 servlet 应用程序的 Wildfly 服务器中安装“Keycloak OpenID Connect Client Adapter”。

您可以使用这个guide 将keycloak 适配器安装到wildly 服务器中。将此适配器安装到新的 Wildfly 后,org.keycloak.keycloak-authz-client 模块将在此 Wildfly 上可用。

但是仍然有一个blocker 用于最新的 java 版本 [java 11 以上]。

【讨论】:

我完成了教程,现在我想我有一个托管应用程序的 Wildfly 服务器。我什至使用我在您提到的指南中设置的凭据在项目上做了mvn clean wildfly:deploy(提示问题的错误),并且工作......但我无法启动wildfly-19.1.0.Final /bin/standalone.sh,由于端口冲突,我该如何更改这些端口?我需要启动 keycloak 服务器并配置领域和客户端... 实际上我设法更改了/wildfly-19.1.0.Final/standalone/configuration/standalone.xml 中的port-offset="$jboss.socket.binding.port-offset:1" 但是如何访问KeyCloak 管理?设置领域和客户端... 默认的 keycloak 安装在另一台 Wildfly 服务器上运行,该服务器在 localhost:8080 上运行。 我想我没有说清楚。我只需要测试这个quickstart project 他们说我需要一个“WildFly 10 running”......我目前有 2 只widfly 正在运行,一个在:8080,另一个在:8081......我很困惑。 . 我按照你提到的指南,最终在我的 linux 中作为服务运行了 Wildfly 服务器。 github.com/keycloak/keycloak-quickstarts/blob/latest/docs/… 请参考此网址。它将解释整个场景。【参考方案2】:

就我而言,WildFly 没有 100% 成功启动。在“standalone.xml”文件的末尾,有些端口可能对您不可用。检查日志,禁用/移动冲突端口。

【讨论】:

以上是关于无法在 Wildfly 中部署 keyclock 快速入门示例战争的主要内容,如果未能解决你的问题,请参考以下文章

在 Wildfly 中部署的 Spring Boot 应用程序“无法实例化 WebApplicationInitializer 类”

无法在 JBoss EAP 6.4 环境中使用 wildfly-maven-plugin 2.0.1 进行部署

Spring Boot 2 重新部署到 Wildfly 10 后无法刷新 JMS 连接

Wildfly 无法部署应用程序(FileNotFoundException - 访问被拒绝)

在 WildFly 上重新部署后,CDI 无法在 @Requestscoped REST 服务中将 @Singleton 设置为 @Provider

Wildfly + Eclipse 部署扫描程序