2

我将在 Java 11 上的 WildFly 17 上运行良好的Web 应用程序ClassNotFoundException: java.security.acl.Group迁移到两者的最新版本:Java 14 上的 WildFly 19。最后我得到了一个,可能是因为 Web 应用程序使用 JAAS。

请注意,按照我自己的教程构建的类似 Web 应用程序运行良好,但它不使用 JAAS。那和这个包java.security.acl让我觉得 JAAS 是相关的。

在网上搜索时,我在 WildFly 的 JIRA 上发现了 WFCORE-4282 问题,这似乎暗示虽然他们知道这个java.security.acl.Group类在一年多前已被弃用,但 WildFly 19 仍然需要它,而 Java 14 确实删除了它,因此ClassNotFoundException对我来说就是这样。

我的解释正确吗?WildFly 19 + Java 14 + JAAS = 是否ClassNotFoundException必须或有人设法使其工作?或者也许我做错了什么?在我看来,JBoss 忽略了 WildFly 是一个巨大的问题......

更新:我删除了 Java 14,安装了 Java 13,重新安装了 Eclipse 和 WildFly 并重新部署了 de 应用程序,它工作正常,所以 WildFly 19 + Java 13 + JAAS = OK!

4

3 回答 3

2

这已在 2021 年底得到解决(迟到总比没有好!)。因此,您现在可以将 JDK 17+ 与 WildFly 26+ 一起使用。但是请注意,您必须从以下位置进行重要的移动:

<subsystem xmlns="urn:jboss:domain:security:1.2">
...
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
...
</login-module>
</subsystem>

...至...

<subsystem xmlns="urn:wildfly:elytron:15.0">
...
<security-realms>
    <jdbc-realm>
    ...
    </jdbc-realm>
</security-realms>
</subsystem>

YMMV 取决于你的架构,但基本上你必须接受 Elytron。

于 2022-02-08T02:14:02.447 回答
1

java.security.acl API 已被最终弃用,并已在 Java 14 中删除:请参阅发行说明:

https://jdk.java.net/14/release-notes

于 2020-06-02T13:01:22.943 回答
0

错误:java.lang.NoClassDefFoundError:java/security/acl/Group 19:23:14,951 错误 [org.apache.activemq.artemis.core.client](默认 I/O-11)AMQ214013:无法解码数据包:java .lang.NoClassDefFoundError: java/security/acl/Group

请尝试以下解决方法更新standalone.xml 并重新启动服务器

添加xml标签<security enabled="false"/>

<server name="default">
<security enabled="false"/>
<statistics enabled="${wildfly.messaging-activemq.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
<security-setting name="#">
    <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>
</security-setting>
于 2020-08-20T13:59:47.670 回答