Jdk 1.7向后兼容1.6

时间:2012-12-19 09:33:25

标签: java backwards-compatibility

我有一个GWT应用程序,我想用hudson创建一个war文件。所以我创建了一个作业,在配置中我检查了构建选项,即调用ant。所以它使用我的应用程序中的build.xml并创建war文件。我的ant文件即build.xml包含以下目标:

1.Java编译

2.GWT编译

3.创造战争

4.使用JDK 1.7.0将其部署到tomcat中

应用程序正在使用jdk 1.6进行编译,并使用jdk 1.7将其部署到tomcat中,但它无法正常工作。带有JDK 1.7.0的tomcat是否与1.6兼容。 ??还是有另一个问题,因为一些gwt-dev,gwt-user jar仍在war文件夹中。在我的tomcat日志中,有以下信息:

INFO: Deploying web application archive /usr/local/tomcat_lh/webapps/Nightly.war
Dec 19, 2012 10:13:41 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/usr/local/tomcat_lh/webapps/Nightly/WEB-INF/lib/gwt-dev.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Dec 19, 2012 10:13:41 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/usr/local/tomcat_lh/webapps/Nightly/WEB-INF/lib/gwt-user.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

2012年12月19日上午10:13:41 org.apache.catalina.loader.WebappClassLoader validateJarFile     INFO:validateJarFile(/usr/local/tomcat_lh/webapps/Nightly/WEB-INF/lib/javax.servlet.jar) - 未加载jar。请参阅Servlet规范2.3,第9.7.2节。违规类:javax / servlet / Servlet.class     2012年12月19日上午10:13:41 org.apache.catalina.core.StandardContext startInternal     严重:错误listenerStart

1 个答案:

答案 0 :(得分:0)

你做错事的可能性远很大。

我怀疑如果你部署到Java 6,你会看到相同的问题,如果不是完全相同的错误。唯一的区别可能是您会在堆栈跟踪中看到不同的行号。

仅供参考:Java 7的代码库和Java 6的最新版本非常相似,甚至共享许多相同的错误。例如这是Java 7中一个众所周知的bug,当它被发布用于循环优化时,人们建议在迁移之前等待它被修复。有趣的是,该漏洞也出现在Java 6中,唯一的区别是Java 7中默认启用了优化,Java 6默认关闭。

BTW:Java 7中的大多数性能改进都被反向移植到Java 6中,因此使用Java 7的唯一理由是:a)您希望使用新语法b)您担心Java 6是EOL。

在您的情况下,目前可能没有充分的理由使用Java 7.