2015-07-22 63 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可以接受并且工作正常。