一、这个问题主要:
1.由于你的 Maven 编译级别是 jdk1.5 或以下,而你导入了 jdk1.6 以上的依赖包
2. Deployment Assembly跟java版本不匹配,即maven默认编译版本与使用的jdk不匹配。
解决方法:
项目pom.xml文件里面加入
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
jdk版本是哪个就是1.x;改完后保存,更新一下maven项目即可。
二、net.sf.json.JSONException:There is a cycle in the hierarchy!
出现原因:在把list或者map转为JSONObect或JSONArray的时候出现的;
使用Hibernate manytoone属性关联主表的时候,如果使用JSONArray把pojo对象转换成json对象时,很容易出现循环的异常。
在解析bean时,出现死循环调用,即:多个Bean之间出现了相互调用,存在级联关系
解决
1.设置JSON-LIB让其过滤掉引起循环的字段:
LibtypeDAO libtypeDAO = new LibtypeDAO();
List<Libtype> list = libtypeDAO.findAll();
JsonConfig jsonConfig = new JsonConfig(); //建立配置文件
jsonConfig.setIgnoreDefaultExcludes(false); //设置默认忽略
jsonConfig.setExcludes(new String[]{"libs"}); //此处是亮点,只要将所需忽略字段加到数组中即可,在上述案例中,所要忽略的是“libs”,那么将其添到数组中即可,在实际测试中,我发现在所返回数组中,存在大量无用属性,如“multipartRequestHandler”,“servletWrapper”,那么也可以将这两个加到忽略数组中.
JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig); //加载配置文件
2.先用其他json包把数据转为json字符串,然后在转为json对象或者json数组
三、javamail邮箱连接报错(配置正确的情况下)
550 RNPI Access denied by login ip protect
DEBUG SMTP: got response code 550, with response: 550 RNPI Access denied by login ip protect
报错原因:发送邮箱的IP变动触发了邮件服务器的保护机制
解决办法:把报错信息发送给邮件服务商,联系他们的售后或者技术支持来解决问题。