BeanCreationException с вложенным исключением StackOverflowError

У меня есть большое веб-приложение (работающее на weblogic 11g), в котором используется комбинация spring, spring-security, mybatis и mybatis-spring. Он использует mybatis: scan с интерфейсом маркера (DataAccess) для подключения SqlSessionFactory к нашим DAO. У нас есть 61 класс (интерфейс), расширяющий интерфейс маркера.

Когда мы добавляем еще один интерфейс, расширяющий DataAccess (маркер), приложение не запускается. Я хотел бы знать, может ли кто-нибудь помочь выяснить, почему добавление еще одного DataAccess приводит к возникновению этих ошибок в приложении.

Я могу предоставить любую информацию, которая поможет в этом разобраться, но я не знала, что включить в свой первоначальный вопрос.

Вот первые две ошибки в файле журнала log4j:

2014-июл-14 12: 58: 22.659 [АКТИВНЫЙ] ExecuteThread: '40' для очереди: 'weblogic.kernel.Default (самонастройка)' DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Игнорирование исключения создания bean-компонента на Проверка типа FactoryBean: org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «paymentsDataAccess», определенным в файле [/opt/..../tmp/_WL_user/..../an9ko4/APP-INF/classes /com/..../payment/app/dao/PaymentsDataAccess.class]: неудовлетворенная зависимость, выраженная через свойство bean-компонента sqlSessionFactory:: ошибка при создании bean-компонента с именем 'sqlSessionFactory', определенным в ресурсе пути к классу [ServiceConfig.xml]: создание экземпляра фасоли не удалось; вложенное исключение - java.lang.StackOverflowError; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'sqlSessionFactory', определенным в ресурсе пути к классу [ServiceConfig.xml]: создание bean-компонента не удалось; вложенное исключение - java.lang.StackOverflowError

2014-июл-14 12: 58: 22.666 [АКТИВНЫЙ] ExecuteThread: '40' для очереди: 'weblogic.kernel.Default (самонастройка)' DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Игнорирование исключения создания bean-компонента на Проверка типа FactoryBean: org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем 'adminSessionDataAccess', определенным в файле [/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: ошибка при создании bean-компонента с именем 'sqlSessionFactory', определенным в ресурсе пути к классу [ServiceConfig.xml]: создание bean-компонента не удалось; вложенное исключение - java.lang.NoClassDefFoundError: не удалось инициализировать класс org.mybatis.spring.SqlSessionFactoryBean

Первая ошибка имеет вложенное исключение StackOverflowError, и когда я посмотрел на сгенерированную трассировку стека, глубина стека вызовов составила более 1000 методов. Я могу предоставить трассировку стека, если меня спросят, но она настолько велика, что я не хотел включать ее, если это не интересно.

Класс PaymentsDataAccess ни в коем случае не особенный - он такой же, как и другие классы доступа к данным в приложении.

Когда приложение не запускается, кажется, есть еще одна ошибка (в server.log), но я не уверен, связана ли она:

java.lang.instrument СБОЙ АССЕРЦИИ: «! errorOutstanding» с ошибкой вызова метода преобразования сообщения в ../../../src/share/instrument/JPLISAgent.c строке: 805


person Kevin HB    schedule 15.07.2014    source источник
comment
java.lang.NoClassDefFoundError: не удалось инициализировать класс org.mybatis.spring.SqlSessionFactoryBean   -  person JamesB    schedule 15.07.2014
comment
Да, но с инициализацией все в порядке, когда на один bean-компонент DataAccess меньше. Кроме того, нет никаких указаний на причину сбоя инициализации, если только это не сбой прибора.   -  person Kevin HB    schedule 15.07.2014


Ответы (1)


Какая у вас версия mybatis-spring. Если ваша версия ниже 1.2.0, это действительно вызывает ошибку stackoverflow. И попробуй 1.2.3.

person philee    schedule 08.06.2016