我一直在进行Spring4和RestWS集成的POC。我对两者都很新,并且只接触了几个星期。我正在按照博客中的指示操作。我了解到,在Spring 4和restWS设置中,应使用jackson-core / anotation / databind 2来正确转换JSON <-> Java对象的消息。还应该使用org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
进行消息转换。我满足了所有这些要求。但是当我尝试启动应用程序时,我遇到了bean创建异常。
SEVERE:向类org.springframework.web.context.ContextLoaderListener的监听器实例发送上下文初始化事件时出现异常 org.springframework.beans.factory.BeanCreationException:无法创建名为"regionController"的bean:自动装配依赖项失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private org.springframework.web.servlet.View com.leggmason.lmpamfs.controllers.RegionController.jsonView_i;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.web.servlet.view.json.MappingJacksonJsonView#0”的bean时出错,它被定义 在ServletContext资源[/WEB-INF/applicationContext.xml]中:实例化bean失败;嵌套异常为org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.springframework.web.servlet.view.json.MappingJacksonJsonView]:构造函数抛出异常;嵌套异常为java.lang.NoClassDefFoundError:org/codehaus/jackson/map/ObjectMapper at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4961) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5455) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 原因是:org.springframework.web.servlet.view.json.MappingJacksonJsonView类出现了问题。可能是工厂文件中以下内容引起的麻烦?
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="contentType" value="text/plain"/>
</bean>
我需要替换这个类吗? 我会帮助你修复这个问题。
谢谢, Suvojit
MappingJacksonJsonView
的jackson1类,但应该使用MappingJackson2JsonView
。 - M. Deinum