BeanCreationException,具有StackOverflowError的嵌套异常

时间:2014-07-15 17:57:38

标签: java spring spring-security mybatis weblogic11g

我有一个大型网络应用程序(在 weblogic 11g上运行),它使用了 spring spring-security 的组合, mybatis mybatis-spring 。它使用mybatis:使用标记接口(DataAccess)扫描,将SqlSessionFactory连接到我们的 DAO 。我们有61个类(接口)来扩展标记接口。

当我们再添加一个扩展DataAccess(标记)的接口时,应用程序无法启动。我想知道是否有人可以帮助弄清楚为什么再添加一个DataAccess会导致应用程序出现这些错误。

我可以提供任何有助于解决此问题的信息,但我不知道在我的初始问题中包含哪些内容。

以下是 log4j 日志文件中的前两个错误:

  

2014-Jul-14 12:58:22.659 [ACTIVE] ExecuteThread:' 40'对于队列:   ' weblogic.kernel.Default(自我调整)' DEBUG   org.springframework.beans.factory.support.DefaultListableBeanFactory   忽略FactoryBean类型上的bean创建异常检查:   org.springframework.beans.factory.UnsatisfiedDependencyException:   使用名称' paymentsDataAccess'创建bean时出错在文件中定义   [/opt/..../tmp/_WL_user/..../an9ko4/APP-INF/classes/com/..../payment/app/dao/PaymentsDataAccess.class]:   通过bean属性表示的不满意的依赖性   ' sqlSessionFactory' ::创建名称为bean的错误   '的SqlSessionFactory'在类路径资源中定义   [ServiceConfig.xml]:bean的实例化失败;嵌套异常是   java.lang.StackOverflowError的;嵌套异常是   org.springframework.beans.factory.BeanCreationException:错误   创建名为' sqlSessionFactory'的bean在类路径中定义   resource [ServiceConfig.xml]:bean的实例化失败;嵌套   异常是java.lang.StackOverflowError

     

2014-Jul-14 12:58:22.666 [ACTIVE] ExecuteThread:' 40'对于队列:   ' weblogic.kernel.Default(自我调整)' DEBUG   org.springframework.beans.factory.support.DefaultListableBeanFactory   忽略FactoryBean类型上的bean创建异常检查:   org.springframework.beans.factory.UnsatisfiedDependencyException:   创建名称为' adminSessionDataAccess'的bean时出错在文件中定义   [/opt/..../tmp/_WL_user/..../an9ko4/APP-INF/classes/com/..../dao/AdminSessionDataAccess.class]:   通过bean属性表示的不满意的依赖性   ' sqlSessionFactory' ::创建名称为bean的错误   '的SqlSessionFactory'在类路径资源中定义   [ServiceConfig.xml]:bean的实例化失败;嵌套异常是   java.lang.NoClassDefFoundError:无法初始化类   org.mybatis.spring.SqlSessionFactoryBean;嵌套异常是   org.springframework.beans.factory.BeanCreationException:错误   创建名为' sqlSessionFactory'的bean在类路径中定义   resource [ServiceConfig.xml]:bean的实例化失败;嵌套   异常是java.lang.NoClassDefFoundError:无法初始化   class org.mybatis.spring.SqlSessionFactoryBean

第一个错误有StackOverflowError的嵌套异常,当我查看生成的堆栈跟踪时,调用堆栈超过1000个方法深度。如果被问到我可以提供堆栈跟踪,但是它非常大,除非有兴趣,否则我不想包含它。

PaymentsDataAccess课程并不特别 - 它与应用程序中的其他数据访问类一样。

当应用程序没有启动时,似乎还有另一个错误(在 server.log 中),但我不确定它是否相关:

  

java.lang.instrument ASSERTION FAILED:"!errorOutstanding"使用消息转换方法调用失败   ../../../src/share/instrument/JPLISAgent.c行:805

1 个答案:

答案 0 :(得分:0)

你的mybatis-spring版本是什么。如果你的版本低于1.2.0,它确实会导致stackoverflow错误。并尝试1.2.3。