我有问题,我需要你的帮助。我在jboss上部署我的项目时遇到此错误:
Unexpected exception initializing encryption. No encryption will be performed.: javax.faces.FacesException: java.security.NoSuchAlgorithmException: AES KeyGenerator not available
at com.sun.faces.renderkit.ByteArrayGuard.setupKeyAndMac(ByteArrayGuard.java:232)
at com.sun.faces.renderkit.ByteArrayGuard.<init>(ByteArrayGuard.java:89)
at com.sun.faces.renderkit.ClientSideStateHelper.init(ClientSideStateHelper.java:496)
at com.sun.faces.renderkit.ClientSideStateHelper.<init>
Caused by: java.security.NoSuchAlgorithmException: AES KeyGenerator not available
at javax.crypto.KeyGenerator.<init>(KeyGenerator.java:169)
at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:223)
at com.sun.faces.renderkit.ByteArrayGuard.setupKeyAndMac(ByteArrayGuard.java:226)
... 29 more
答案 0 :(得分:0)
每个Java实现都需要支持一些标准算法,如AES或DES。这在documentation of KeyGenerator
中说明。所以你可能在Java环境设置方面遇到了问题。
在oracle的java实现中,算法类应位于sunjce_provider.jar
(至少版本为1.7和1.8),通常位于$JAVA_HOME/jre/lib/ext
下。
常见的失败是,当您通过
明确定义extension-dir时,此目录不在您的类路径中,这可能会发生java -Djava.ext.dirs=/my/other/dir <more arguments...>
如果您以这种方式指定extension-dir,则还应包含$JAVA_HOME/jre/lib/ext
(并确保JAVA_HOME
设置正确):
java -Djava.ext.dirs=/my/other/dir:$JAVA_HOME/jre/lib/ext <more arguments...>
在JBoss / Wildfy中,这通常在配置文件bin/standalone.conf
(或旧版本中的bin/run.conf
)中完成。
有关Java扩展及其配置的详细信息,请参见here。