由于以下原因导致的错误:java.lang.ClassNotFoundException Keycloak
error due to the following reason(s): java.lang.ClassNotFoundException Keycloak
我在使用 Keycloak 部署应用程序时遇到问题:
DEPLOYMENTS IN ERROR:
Deployment "vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear" is in error due to the \ following reason(s): java.lang.ClassNotFoundException: javax.faces.component.UIComponent from BaseClassLoader@6929c1c6{vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear}
或这个:
DEPLOYMENTS IN ERROR: Deployment
"vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo.ear" is in error due to the following reason(s):
org.jboss.deployers.spi.DeploymentException: URL
file:/D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear/keycloak-demo-web.war/ deployment failed
将以下代码添加到 web.xml
时出现错误
<login-config>
<auth-method>KEYCLOAK</auth-method>
<realm-name>demo</realm-name>
</login-config>
我已经从管理控制台在 WEB-INF
中创建了 keycloak.json
,例如:
{
"realm": "demo",
"realm-public-key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB",
"auth-server-url": "http://localhost:8080/auth",
"ssl-required": "external",
"resource": "panel",
"credentials": {
"secret": "6c3fa646-f033-4864-8b87-604887ce8eec"
}
}
我从 redme 文件添加到 Keycloak
配置到 standalone/configuration/standalone。xml:
对于 WildFly 和 JBoss EAP 6.x
<extensions>
<extension module="org.keycloak.keycloak-subsystem"/>
...
</extensions>
<profile>
<subsystem xmlns="urn:jboss:domain:keycloak:1.0">
<auth-server name="main-auth-server">
<enabled>true</enabled>
<web-context>auth</web-context>
</auth-server>
</subsystem>
...
</profile>
我正在使用这个 keycloak (keycloak-appliance-dist-all-1.1.0.Final) http://sourceforge.net/projects/keycloak/files/1.1.0.Final/keycloak-appliance-dist-all-1.1.0.Final.zip/download
我成功部署了包中的示例 keycloak 1.1.0,并想在我的应用程序中使用 keycloak。我做错了什么?
编辑:
我想我找到了导致问题的元素:
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.1.0.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
当我从示例项目中删除此 parent
时,它停止工作
我的应用程序结构是
mainapp
... pom.xml
... module1
...
pom.xml
... module2
...
pom.xml
... module3 ... pom.xml
每个模块有 parent
到 mainapp
当我从 keycloak
添加父级到 mainapp
pom.xml
我在其他模块的 pom.xml
中的 parent
到 mainapp
有错误喜欢:
Plugin execution not covered by lifecycle configuration:
我也尝试将 dependency
添加到 keycloak-parent
但 id 仍然不起作用
我该如何解决这个问题?
为了让您的应用程序与 keycloak 一起工作,您必须在您的服务器上安装一个适配器。以下是详细信息:
https://docs.jboss.org/keycloak/docs/1.1.0.Final/userguide/html/ch08.html
您可以在您的 WEB-INF/ 中部署 keycloak 子系统或 keycloak.json 文件。这两种情况都必须安装适配器
此致
Keycloak 由一个服务器(Keycloak 服务器)和一个保护您的应用程序并处理身份验证的适配器组成。如果您将自己的应用程序部署在与 Keycloak 服务器相同的服务器中,则需要将 Keycloak 适配器添加到服务器,如前所述(请参阅 Keycloak adapters)。最新版本的 Keycloak 作为预配置的 Wildfly 9 提供,因此可能适合您的应用程序。还有用于其他容器或纯 HTML 客户端的适配器。
从你的问题来看,我猜你正在尝试将 Keycloak 示例修改为你自己的应用程序。 Keycloak 示例使用共享的父 POM,因此它可能希望将其拆分为单个 POM 以获得更好的概览。或者,根据您的专业知识,您可以从具有 JAAS 安全性的基本 JEE 应用程序开始,并将其部署到 Keycloak 服务器(安装 JBoss/Wildfly 适配器)。参见例如Oracle's JEE 6 Tutorial.
我在使用 Keycloak 部署应用程序时遇到问题:
DEPLOYMENTS IN ERROR: Deployment "vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear" is in error due to the \ following reason(s): java.lang.ClassNotFoundException: javax.faces.component.UIComponent from BaseClassLoader@6929c1c6{vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear}
或这个:
DEPLOYMENTS IN ERROR: Deployment "vfs:///D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo.ear" is in error due to the following reason(s): org.jboss.deployers.spi.DeploymentException: URL file:/D:/jboss-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/keycloak-demo-ear.ear/keycloak-demo-web.war/ deployment failed
将以下代码添加到 web.xml
<login-config>
<auth-method>KEYCLOAK</auth-method>
<realm-name>demo</realm-name>
</login-config>
我已经从管理控制台在 WEB-INF
中创建了 keycloak.json
,例如:
{
"realm": "demo",
"realm-public-key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB",
"auth-server-url": "http://localhost:8080/auth",
"ssl-required": "external",
"resource": "panel",
"credentials": {
"secret": "6c3fa646-f033-4864-8b87-604887ce8eec"
}
}
我从 redme 文件添加到 Keycloak
配置到 standalone/configuration/standalone。xml:
对于 WildFly 和 JBoss EAP 6.x
<extensions>
<extension module="org.keycloak.keycloak-subsystem"/>
...
</extensions>
<profile>
<subsystem xmlns="urn:jboss:domain:keycloak:1.0">
<auth-server name="main-auth-server">
<enabled>true</enabled>
<web-context>auth</web-context>
</auth-server>
</subsystem>
...
</profile>
我正在使用这个 keycloak (keycloak-appliance-dist-all-1.1.0.Final) http://sourceforge.net/projects/keycloak/files/1.1.0.Final/keycloak-appliance-dist-all-1.1.0.Final.zip/download
我成功部署了包中的示例 keycloak 1.1.0,并想在我的应用程序中使用 keycloak。我做错了什么?
编辑:
我想我找到了导致问题的元素:
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.1.0.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
当我从示例项目中删除此 parent
时,它停止工作
我的应用程序结构是
mainapp
... pom.xml
... module1 ... pom.xml
... module2 ... pom.xml
... module3 ... pom.xml
每个模块有 parent
到 mainapp
当我从 keycloak
添加父级到 mainapp
pom.xml
我在其他模块的 pom.xml
中的 parent
到 mainapp
有错误喜欢:
Plugin execution not covered by lifecycle configuration:
我也尝试将 dependency
添加到 keycloak-parent
但 id 仍然不起作用
我该如何解决这个问题?
为了让您的应用程序与 keycloak 一起工作,您必须在您的服务器上安装一个适配器。以下是详细信息: https://docs.jboss.org/keycloak/docs/1.1.0.Final/userguide/html/ch08.html
您可以在您的 WEB-INF/ 中部署 keycloak 子系统或 keycloak.json 文件。这两种情况都必须安装适配器 此致
Keycloak 由一个服务器(Keycloak 服务器)和一个保护您的应用程序并处理身份验证的适配器组成。如果您将自己的应用程序部署在与 Keycloak 服务器相同的服务器中,则需要将 Keycloak 适配器添加到服务器,如前所述(请参阅 Keycloak adapters)。最新版本的 Keycloak 作为预配置的 Wildfly 9 提供,因此可能适合您的应用程序。还有用于其他容器或纯 HTML 客户端的适配器。
从你的问题来看,我猜你正在尝试将 Keycloak 示例修改为你自己的应用程序。 Keycloak 示例使用共享的父 POM,因此它可能希望将其拆分为单个 POM 以获得更好的概览。或者,根据您的专业知识,您可以从具有 JAAS 安全性的基本 JEE 应用程序开始,并将其部署到 Keycloak 服务器(安装 JBoss/Wildfly 适配器)。参见例如Oracle's JEE 6 Tutorial.