У меня есть большое веб-приложение (работающее на 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