springmvc 配置了自动json转换,但是得到了500错误,控制台没有报错。
looyo
2015-02-09
springmvc4.1.4
下面是控制器的部分代码, queryLst 是个List,装载的是LoginUser 实例,LoginUser也是hibernate的pojo类,是主从结构的。从表内容放在其一个类型为Set的集合类中。当这个集合类不为空时,请求"sysmng/queryUsers" 得到500错误。当这个集合类为空时,一切正常。我推测是json自动转换的处理出了问题,但是我在eclipse中调试时,控制台并没有输出任何异常。不管是集合类为空还是不为空,跟踪控制器代码时,都能正常走完queryUsers 中所有步骤。 @RequestMapping(value = "sysmng/queryUsers", method = RequestMethod.POST) public @ResponseBody ModelMap queryUsers(@RequestBody ModelMap map) { //这边省略了部分代码 ModelMap result = new ModelMap(); result.put("draw", draw); long count = ((Long) countLst.get(0)).longValue(); result.put("recordsFiltered", count); result.put("recordsTotal", count); result.put("data", queryLst); return result; } 下面是*-servlet.xml的内容 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <context:component-scan base-package="looyo.xsystem.web"></context:component-scan> <mvc:annotation-driven /> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> <property name="prefix" value="/"></property> <property name="suffix" value=".html"></property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jsonHttpMessageConverter" /> </list> </property> </bean> <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" /> <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView"> <value>/error/error</value> </property> <property name="defaultStatusCode"> <value>500</value> </property> <property name="warnLogCategory"> <value>org.springframework.web.servlet.handler.SimpleMappingExceptionResolver </value> </property> </bean> </beans> |
|
hss118100
2015-02-16
这个应该是hibernate代理对象的问题,一般出现在hibernate多对一和一对多关联的时候。解决办法有两种,一种是把hibernate的代理对象变成实际对象,另一种就是不要用ResponseBody注解,使用MappingJacksonJsonView做解析,一般是可以解决这个问题的
|
|
json20080301
2015-02-20
ModelMap result = new ModelMap();
使用Map result = new HashMap(); |
|
looyo
2015-03-05
问题解决了。 LoginUser 中有many to many关系(注解方式配置),而默认是懒加载的。
改成fetch=FetchType.EAGER 就OK了。 |
|
aflyt
2015-03-25
不使用hibernate的LAZY不好吧?Set的数据前台是真的需要显示吗?为什么不加层DTO?个人理解哈~
|
|
looyo
2015-05-07
aflyt 写道 不使用hibernate的LAZY不好吧?Set的数据前台是真的需要显示吗?为什么不加层DTO?个人理解哈~
直接原因找到了,至于你说的问题,可以寻求其他的方法来解决。 |
相关讨论
相关资源推荐
- java为什么要分为service层,dao层,controller层和Entity层等?
- 持久层框架有哪些?区别是什么?Mybatis框架的优点和缺点
- java系统项目分为哪五大层次?控制层_业务_一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转...
- Spring——DAO层、Spring JDBC、Spring事务控制
- view\controller\service\DAO层的功能介绍以及联系,分层结构
- java中 service层和DAO层的区别
- MyBatis持久层框架与MybatisPlus
- dao mvc连接mysql_详解Spring MVC配置Service和DAO层
- JAVA三层架构,持久层,业务层,表现层的理解
- dao层和service层的区别