2015-07-22 62 views
0

我們使用Spring作爲DI。我們使用@Inject註解構造bean。在服務器啓動我的VerifyError在Spring中創建bean時的VerifyError

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'SomeUsefullBean' defined in "../some.jar/../SomeUsefullBean.class": 
Initialization of bean failed; nested exception is java.lang.VerifyError: 
(class: com/someone/SomeUsefullBean$$EnhancerBySpringCGLIB$$fd8c2b52_39, method: <init> signature: 
(Lcom/someone/something1; 
Lcom/someone/something2; 
Lcom/someone/something3; 
Lcom/someone/something4; 
Lcom/someone/something5; 
Lcom/someone/something6; 
Lcom/someone/something7;)V) Register 8 contains wrong type 

我檢查一切我還記得 - 庫版本,Java版本,Spring版本,甚至可以運行建立另一臺PC上。所有依賴關係都是正確的,已定義,並且沒有循環依賴關係。絕對正常的豆。

Spring版本4.1.6

回答

0

問題是通過去除構造函數和帶註釋setter方法取代它解決。當構造函數的參數大小超過一定的數量(在我的情況下是6)JVM拋出VerifyError。我仍然不知道爲什麼會發生,爲什麼它影響Spring bean加載。假設字節碼生成器存在一些錯誤。對我來說WA可以接受並且工作正常。