2016-12-23 28 views
1

我有一個問題,我需要您的幫助。我得到這個錯誤,而在JBoss部署我的項目:java.security.NoSuchAlgorithmException:部署在jboss上時AES KeyGenerator不可用

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

運行Java的版本/風格? – Andreas

+0

哪個代碼會引發錯誤? – jklee

+0

我正在使用jdk 1.8.0_112。我只是啓動Jboss在Jboss IDE上部署我的項目。 – Hutan

回答

0

的Java的每個實現需要支持一些標準算法,如AES或DES。這在documentation of KeyGenerator中說明。所以你的Java環境設置可能有問題。

在Oracle的Java實現的算法類應位於sunjce_provider.jar(至少有1.7和1.8版本),其通常位於$JAVA_HOME/jre/lib/ext下。

常見的故障是,這個目錄是不是在你的類路徑,這可能會發生,當你明確地通過

java -Djava.ext.dirs=/my/other/dir <more arguments...> 

定義一個擴展-DIR如果指定了擴展-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/run.conf)配置文件bin/standalone.conf中完成的。 有關java擴展及其配置的詳細信息,請參閱here

+0

我個人從來沒有見過lib/ext不在類路徑中,但我已經看到AES默認情況下不是*激活的* – Kukeltje