我将一个在Java11上运行良好的Web应用程序迁移到了WildFly 17的最新版本:Java14上的WildFly 19。最后,我得到了一个ClassNotFoundException: java.security.acl.Group
,这可能是因为这个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!
发布于 2022-02-08 02:14:02
这个问题在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>
...to...
<subsystem xmlns="urn:wildfly:elytron:15.0">
...
<security-realms>
<jdbc-realm>
...
</jdbc-realm>
</security-realms>
</subsystem>
YMMV取决于您的架构,但基本上您必须接受Elytron。
发布于 2020-06-02 13:01:22
Java最终被废弃,并在Java14中被删除:请参见发布说明:
发布于 2020-08-20 13:59:47
错误:java.lang.NoClassDefFoundError/security/acl/Group 19:23:14,951 org.apache.activemq.artemis.core.client AMQ214013:未能解码数据包: java.lang.NoClassDefFoundError: java/security/acl/Group
添加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>
https://stackoverflow.com/questions/62056387
复制相似问题