Причина получения ClassFormatError: недопустимая длина в LocalVariableTable в приложении Spring с использованием аннотации Transactional
У меня есть класс 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
Я посмотрел в байт-код класса, и я не вижу найти LocalVariableTable, который предположительно должен быть слишком длинным.
Может ли это быть связано с неправильным использованием аннотаций Spring? Я пытался скомпилировать код без некоторых использованных инъекций bean-компонента, но проблема всегда оказывается в другом bean-компоненте.