java - 列出 JSP 文件中的所有 Java 错误

标签 java eclipse jsp netbeans

我在一个大型 Web 项目中使用了旧版 Eclipse (Helios) 和旧版 Tomcat (5.5)。更新到 Tomcat 6 后,此代码停止工作:

short foo = 3;
Integer bar = foo;

显然,根据 Java 语言规范[1],这是无效代码,并且旧的 Eclipse 编译器中存在错误,因此没有报告该错误。新的 Eclipse (Kepler) 将其报告为错误。

我不太清楚为什么它停止与新 Tomcat 一起工作,因为它使用与旧 Tomcat 相同的 Java 编译器,但代码无效,我想在整个项目中修复它。

首先,我尝试在新的 Eclipse 中验证整个项目,以便它会列出所有出现此错误的 .jsp 文件。然而,Eclipse 中的这种验证似乎工作得不太好,因为有时它会检测到文件中的多个(现有)错误,有时会报告同一文件中没有错误(没有更改,10 秒后)。

我尝试的下一步是将项目导入 NetBeans (7.4) 并尝试在此处列出这些错误。当我打开一个有错误的文件时,它检测到:“不兼容的类型:short 无法转换为整数”。但是,当我在“操作项”列表中列出所有错误时,我找不到这些错误(尽管我将过滤器设置为包含编译器错误)。

我认为列出项目中所有 JSP 文件中的所有 Java 错误会很容易,但事实证明并非如此。我该怎么做?

[1] Widening and boxing with java

最佳答案

这个问题的解决方案是编译项目中的所有JSP文件(即为它们生成Java文件),然后检查生成文件的错误。

NetBeans 可以选择预编译所有 JSP 文件,但这对我来说不起作用,因为它在遇到第一个有错误的 Java 文件后停止(也许有办法绕过这个问题?)。

另一个解决方案可能是配置 Apache Maven 来构建整个项目,但我没有尝试这个,因为一位同事想出了一个很好的快速解决方案:

为项目中的每个 JSP 文件生成一个 wget 请求并运行所有这些请求。 wget 由于未登录而无法真正访问页面,这并不重要,它只是“接触”页面并强制 Tomcat 生成 Java 文件。

类似这样的东西(linux/cygwin):

find jsp -name '*.jsp' -printf 'http://localhost:8080/App/%p\n' > tmp/urls
wget -q --proxy=off --spider -i tmp/urls

关于java - 列出 JSP 文件中的所有 Java 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20013519/

相关文章:

java - 如何将 apache solr 与 eclipse 和 Apache tomcat 集成

html - iFrame 之间的通信不起作用

java - 如果我关闭应用程序,CountDownTimer 会工作吗?

java - 将cpp文件添加到cocos2d-x项目android项目

php - Eclipse 在启动 Xdebug 调试 session 时停止在 57%

java - 找不到包 java.util.PropertyResourceBundle 的资源

java - 使用 JSTL 在 JSP 下拉列表中显示部门代码和描述

java - Spring REST 调用在浏览器中显示 JSON——有没有办法允许用户下载文件?

java - bean 验证不适用于 kotlin (JSR 380)

java - 如何使用纯 Java 验证签名的 JAR?