Причина получения ClassFormatError: недопустимая длина в LocalVariableTable в приложении Spring с использованием аннотации Transactional - PullRequest
0 голосов
/ 05 октября 2018

У меня есть класс Java Spring:

@Service(value = "problematicClass")
public class ProblematicClass {

    private static final String PREFIX = "PREF_";
    private static Logger logger = Logger.getLogger(ProblematicClass.class);

    @Autowired
    Helper helper;

    @Autowired
    dzetaDAO dzetaDAO;

    @Autowired
    ksiDAO ksiDAO;

    @Autowired
    deltaDAO deltaDAO;

    @Autowired
    gammaDAO gammaDAO;

    @Autowired
    betaDAO betaDAO;

    @Autowired
    alfaDAO alfaDAO;

    @Resource(name = "ksiService")
    protected ksiService ksiService;

    @Resource(name = "epsServiceBR")
    public epsServiceBR epsServiceBR;


    @Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED)
    public void createAndDeleteksis(int thetha) throws Exception {

      // do stuff

    }

    private void createksi(int id) throws Exception {
       // do other stuff
    }

    private void deleteksi(int id) throws Exception {
        // do yet another stuff
    }

}

Когда компиляция класса завершается успешно, при запуске приложения с использованием этого класса я получаю следующие ошибки:

org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем 'scopedTarget.betaDAO': сбой внедрения зависимостей постоянства

и

java.lang.ClassFormatError: Неверная длина 65520в LocalVariableTable в файле класса ../ProblematicClass

Я изучил байт-код класса и не могу найти find LocalVariableTable, который предположительно должен быть слишком длинным.

Может ли эта проблема быть вызвана неправильным использованием аннотаций Spring?Я пытался скомпилировать код без некоторых использованных инъекций bean-компонента, но проблема всегда оказывается в другом bean-компоненте.

...