jyr*_*and 13 json spring-mvc jackson
我不能让Spring的JSON支持工作.在我的spring-servlet.xml文件中,我包含以下行:
<mvc:annotation-driven/>
<context:component-scan base-package="my.packagename.here" />
<context:annotation-config />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
<bean id="jacksonMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
Run Code Online (Sandbox Code Playgroud)
我还下载了jackson库并将它们添加到我的eclipse项目以及WEB-INF/lib文件夹中.使用jQuery getJSON方法向控制器发送请求时,我收到以下错误:
javax.servlet.ServletException: Servlet.init() for servlet dispatcher threw exception
java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonProcessingException
java.lang.ClassNotFoundException: org.codehaus.jackson.JsonProcessingException
Run Code Online (Sandbox Code Playgroud)
你认为这是什么问题.我猜这与我的spring-servlet.xml文件有关.如果需要,我可以粘贴整个错误日志.
小智 43
对于Jackson v2 jar,应该用于bean的类
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
Run Code Online (Sandbox Code Playgroud)
对于较旧的jackson版本,org.springframework.http.converter.json.MappingJacksonHttpMessageConverter没问题.确保将jar文件添加到项目库中.
dem*_*lem 10
anshul tiwari的答案部分地解决了这个问题.这是一个更完整的答案......
当杰克逊进入2.0版本时,核心库从jackson-core-asl-xxxjar变为jackson-core-xxxjar.有了这个,路径发生了变化.在版本1中,org.codehaus.jackson是路径.在版本2中,如果要打开jar文件,则在com.fasterxml.jackson.core中.
现在,如果您拥有版本2的库,并且您看到了org.codehaus.jackson ClassNotFoundException,则表示存在混合版本.有些代码期待v1但你提供了v2.当使用Spring时,这当然是可行的,因此您必须小心为代码选择正确的jar文件.
编辑
事实上,看看3.2 Spring源代码,org.springframework.http.converter.json.MappingJacksonHttpMessageConverter仍然引用org.codehaus的东西,所以这是Spring源代码需要导入正确路径的情况,开发人员没有什么可以使用jackson 2.
| 归档时间: |
|
| 查看次数: |
40997 次 |
| 最近记录: |