Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
出错场景:
代码:
public class JsonUtil {
private static final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
public static String toJson(Object obj) {
return gson.toJson(obj);
}
public static <T> T fromJson(String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
@SuppressWarnings("unchecked")
public static <T> T fromJson(String json, Type typeOfT) {
return gson.fromJson(json, typeOfT);
}
}
在本地eclipse下编译是没有任何问题。
maven编译配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
异常信息:
[ERROR]
[ERROR] /opt/web/iwork_shell/release_jar_workspace/831881fe-9cbe-4444-99d9-5667fcb96263/workspace/src/main/java/com/bj58/biz/utility/JsonUtil.java:[26,22] 无法确定 T 的类型参数;对于上限为 T,java.lang.Object 的类型变量 T,不存在唯一最大实例
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
英文错误信息:
incompatible types;
found: ...........
required:...........
问题原因:
用Maven编译,jdk版本已经指定为1.6版,在本地mavan编译打包也一切正常。在maven打包服务器上打包就会出以上的异常信息。发现打包服务器上的jdk版本是jdk1.6.0_16版本,经过查找相关资料确认,该问题是jdk1.6.0_16版本一个bug导致的,这是一个确认的错误:错误号:6468354,具体错误原因可以查看:https://bugs.openjdk.java.net/browse/JDK-6468354
解决办法:
1. 在返回的地方加强制类型转换,可以临时绕过该问题
public class JsonUtil {
private static final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
public static String toJson(Object obj) {
return gson.toJson(obj);
}
public static <T> T fromJson(String json, Class<T> classOfT) {
return (T)gson.fromJson(json, classOfT);
}
@SuppressWarnings("unchecked")
public static <T> T fromJson(String json, Type typeOfT) {
return (T)gson.fromJson(json, typeOfT);
}
}
2. 升级jdk版本到1.6的最新版本,比如我们升级到jdk1.6.0_38版本后,测试打包就没有问题。根据网上资料,该bug在jdk1.6.0_25版本已经解决(没有亲测吆)
Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案的更多相关文章
- 既使用maven编译,又使用lib下的Jar包
<build> <finalName>xxx</finalName> <plugins> <plugin> <groupId>o ...
- 安装maven编译环境
安装maven编译环境 1.默认已经装好yum并配置好yum源(推荐使用163yum源) 2.安装JDK 3.安装相关依赖环境(root用户登陆) yum install -y cmake lzo-d ...
- 使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
使用maven编译Java项目 时间 2014-07-17 17:42:37 Way Lau's Blog 原文 http://www.waylau.com/build-java-project- ...
- Spark-1.0.1 的make-distribution.sh编译、SBT编译、Maven编译 三种编译方法
fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3775343.html 本文编译方法所支持的hadoop环境是Hadoop-2.2.0, ...
- maven添加jar包依赖
maven的东西使用了一段时间,但是每次使用都多少有点含糊,所以总结一下. 目前主要使用是在jar包的控制上 原理: 在本地,指定一个文件夹,便是maven的仓库,maven会从远程的中央仓库中下载你 ...
- maven编译常见错误解决方法整理
程序包com.sun.xml.internal.ws.spi不存在 当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderIm ...
- 每周问题系列 - JavaFX界面没响应,Maven编译自动忽略rt包
本人博客文章网址:https://www.peretang.com/weekly-problem-session-week-31/ 前言 新开一个系列, 用来记录每周遇到的问题 JavaFX界面没响应 ...
- Eclipse Maven编译报不支持muti-catch
最近几次使用maven编译,总是报一下的错误:source 1.6 中不支持 multi-catch 语句,(请使用 -source 7 或更高版本以启用 multi-catch 语句) 问题很清楚, ...
- java传统web项目添加maven管理jar包,log4j无法正常输出日志
本文适合1年以上编程基础的开发人员阅读,非技术创新,可作为故障排除实录参考/收藏. 背景 笔者最近在给公司一个老的web项目改造升级,项目使用springmvc+mybatis,由于项目比较久远,没有 ...
随机推荐
- 据说,每一个 iOSer 都想要一张 Swift 大会门票
据说,每一个 iOSer 都想要一张中国首届 Swift 开发者大会的门票: 那么,福利来了-- fir.im 作为中国首届 Swift 大会的唯一钻石赞助商,有最后 2 张价值 600 多的门票(已 ...
- iOS-性能优化4
UITableView性能优化技巧 Table view需要有很好的滚动性能,不然用户会在滚动过程中发现动画的瑕疵. 为了保证table view平滑滚动,确保你采取了以下的措施: 正确使用`reus ...
- Eclipse中java获得mysql的查询结果集
不废话,先上代码,再上解释说明 package com.ningmeng; import java.sql.*; /** * 1:获取查询结果集 * @author biexiansheng * */ ...
- 如何查看某个查询用了多少TempDB空间
最近帮助客户调优的过程中,发现客户的TempDB存在非常大的压力,经过排查是发现某些语句对TempDB的巨量使用所导致. 在SQL Server中,TempDB主要负责供下述三类情况使 ...
- audio和video元素
目录 [1]HTML元素 audio video source track[2]API 方法 属性 事件 audio专有 前面的话 HTML5新增了两个与媒体相关的标签,让开发人员不必依赖任何插件就能 ...
- XML序列化的时候如何支持Namespace
我曾经不止一次(当然不仅仅是我意识到这个问题)说到过,XML标准中的Namespace的设计其实是一个较为失败的设计,它有它的优点,但缺点更多. http://zzk.cnblogs.com/s?w= ...
- JS代码格式化和语法着色
有时为了研究学习一些格式不规范的JS代码段,需要将代码段格式化一下,这样思路就会清晰多了,网上找到此款格式化的工具,将以下代码保存为html格式文件即可使用 <html> <head ...
- QQ JS_SDk相关功能接口
一.实现QQ登录功能 <!DOCTYPE html><html lang="zh-cn"> <head> <meta htt ...
- 22套新鲜出炉的 Web & Mobile PSD 用户界面素材
在这篇文章中,我们展示的是自由和清新的 UI 设计素材套件.这些线框图和 UI 设计工具包让设计师在设计用户界面原型的时候能够非常便利. Web 用户界面,移动用户界面和线框套件对设计师很有用,因为这 ...
- express 框架之session
一.什么是session? 最近在学习node.js 的express框架,接触到了关于session方面的内容.翻阅了一些的博客,学到了不少东西,发现一篇博文讲的很好,概念内容摘抄如下: Sessi ...