Проблема
Использование Джексона в качестве поставщика JSON в RESTEasy .
org.jboss.resteasy resteasy-jaxrs 2.2.1.GA org.jboss.resteasy resteasy-jackson-provider 2.2.1.GA
С включенным автоматическим сканированием RESTEasy.
resteasy.scan true
При запуске он обнаруживает следующие ошибки и не смог запустить ни одну из служб RESTEasy.
SEVERE: Exception sending context initialized event to listener instance of class org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap java.lang.RuntimeException: Unable to instantiate MessageBodyReader at org.jboss.resteasy.spi.ResteasyDeployment.registerProvider(ResteasyDeployment.java:505) at org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:305) at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:225) //... Caused by: java.lang.RuntimeException: Illegal to inject a message body into a singleton into public org.codehaus.jackson.jaxrs.JacksonJsonProvider( org.codehaus.jackson.map.ObjectMapper,org.codehaus.jackson.jaxrs.Annotations[]) ... 20 more
Решение
Существует проблема с интеграцией RESTEasy с Jackson, если включен режим ” автоматическое сканирование “. Надеюсь, это будет исправлено в более позднем выпуске.
Чтобы исправить это, отключите функцию автоматического сканирования и зарегистрируйте свою службу RESTEasy вручную в web.xml
.
resteasy.resources com.mkyong.JacksonRestServiceHere
Оригинал: “https://mkyong.com/webservices/jax-rs/illegal-to-inject-a-message-body-into-a-singleton-into-public-org-codehaus-jackson-jaxrs-jacksonjsonprovider/”