0

在调试 tomcat 6 时,我们发现 Tomcat 和 Eclipse 中的部署有两个不同的类。Tomcat 中的部署会创建 NullPOinterException,而 Eclipse 源不会。问题是,如果我们用startup.sh它启动 Tomcat 会产生错误……每次!如果我们以 启动catalina jpda start,将 Eclipse 连接到它,它会产生错误,因为我们没有更改某个属性的值,这会导致此错误。更改此值后,即使我们删除部署文件夹和工作目录并在调试模式下重新启动,错误也消失了。没有例外。但是,如果我们再次重新启动,startup.sh错误又会出现。

所以,我的问题是,Tomcat 或 Eclipse 是否缓存/存储来自 Eclipse 的源代码以供远程调试器使用?

谢谢!

4

1 回答 1

0

当您调试应用程序时,Eclipse(我相信像 IDEA 和 Netbeans 之类的其他工具)会在“保存”时替换服务器上正在运行的代码。这意味着当在 Eclipse 中改变一个类时,保存它,它会在服务器上改变它。也称为代码替换。我也相信 tomcat 会在 catalina.out 中记录更改
但是,当您重新启动服务器时,它会获取之前部署的类,因此您会在 Eclipse 中获取更改之前的类。

于 2012-12-17T09:49:27.433 回答