Я использую Wildfly V16 для запуска приложения java (1.8) + Spring (4.1.3) в среде Openshift Online (v3).
В приложении есть класс (GiftcardWebService.java) с аннотацией @Service, а его методы в основном используются аннотацией @Transactional:
Класс контроллера:
@Controller
@RequestMapping(value = "/BusinessController/")
public BusinessController {
...
@Autowired
private GiftcardWebService service;
...
}
GiftcardWebService.java
@Service
public GiftcardWebService {
....
@Transactional
public Map<String, String> getGiftcardForm (....) {
....
}
...
}
Во время развертывания в Wildfly v15 или v16 возникает ошибка:
Could not generate CGLIB subclass of class [class com.liquibil.controllers.GiftcardWebService]: Common causes of this problem include using a final class or a non-visible class.
Интересно, что этот же код работает для Wildfly 10–14.aformentioned error) при развертывании в Wildfly v15 или v16.
Я погуглил эту проблему, нашел некоторые обсуждения, но в основном для Springframework версии 3, когда CGLIB требует конструктора класса по умолчанию.Моя версия Spring 4.1.3.
Я также удалил единственную «конечную» переменную (в логгере), но это не помогло.Я понятия не имею, что в этом контексте можно квалифицировать как невидимый класс.
Я также удалил все аннотации @Transactional в GiftcardWebService.java, затем ошибка исчезла (это подтверждает, что ошибка произошла из-за @Transactional)