#java #spring-batch
#java #весенний пакет
Вопрос:
Я пытаюсь выполнить пакетное приложение Spring на сервере Wildfly 20 final, но получаю следующую ошибку,
Тот же код отлично работает, если я использую встроенный сервер tomcat.
Caused by: java.lang.NoSuchFieldError: BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES
at org.springframework.batch.core.repository.dao.Jackson2ExecutionContextStringSerializer.<init>(Jackson2ExecutionContextStringSerializer.java:119)
at org.springframework.batch.core.repository.support.JobRepositoryFactoryBean.afterPropertiesSet(JobRepositoryFactoryBean.java:192)
at org.springframework.boot.autoconfigure.batch.BasicBatchConfigurer.createJobRepository(BasicBatchConfigurer.java:133)
at org.springframework.boot.autoconfigure.batch.BasicBatchConfigurer.initialize(BasicBatchConfigurer.java:101)
at org.springframework.boot.autoconfigure.batch.BasicBatchConfigurer.afterPropertiesSet(BasicBatchConfigurer.java:95)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1847)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784)
Комментарии:
1. У меня была такая же проблема при развертывании в Weblogic. Исправлено путем добавления `<package-name>com.fasterxml.jackson.* </package-name>` в weblogic.xml
<prefer-application-packages>
раздел
Ответ №1:
Я тоже сталкиваюсь с этой проблемой, похоже, что springbatch 4.3.0 ввел зависимость от привязки данных Джексона 2.11.
Вот весенний коммит: https://github.com/spring-projects/spring-batch/commit/9a79b4572d0aa4bec38fe90957c850920b7f9cea
И фиксация привязки данных: https://github.com/FasterXML/jackson-databind/commit/fa402574f99daa10410682160365df0867abe4d4
-> Поэтому необходимо понизить версию до 4.2.x или обновить jackson до 2.11
(Обновлено: фиксация была введена в springbatch 4.3.0, а не 4.3.1)
Комментарии:
1. Ты лучший! Я смог добраться до spring boot starters 2.2.0, но spring-batch-core был только 4.2.0.RELEASE, и я хотел 4.2.3.RELEASE, но это не удалось из-за того же NoSuchFieldError (spring 2.2.0 использует jackson-databind 2.10.0). 2.11.0 заставил его работать, спасибо!