部署修改后的 jar 后无法使用 eclipse 远程调试 tomcat

fail to remote debug tomcat with eclipse after deploy a modified jar

我正在为 Geoserver 开发一个数据存储插件,为了更快地开发它,我正在尝试远程调试它。 Geoserver 在幕后使用 Tomcat。我准备了通过 Eclipse 进行远程调试的所有内容并完成了它。现在我可以远程调试我的插件了。但是,当我修改我的代码(我试图添加一个无害的行,如:int noHarm = 5;)然后将其导出为 jar 并将该 jar 复制到 Geoserver 安装目录下的 webapps\lib\ 时,我失败了远程调试插件。之后我将该修改改回它工作时(删除 int noHarm = 5;)并再次创建 jar,然后将其复制到 webapps\lib\ 下,现在我可以再次进行远程调试了。

当我在 Geoserver 中打开商店页面时,它在 canProcess() 方法中的断点处停止,jar 从未修改的代码中导出,或者当我尝试添加新商店时,它在中的断点处停止createDataStore() 方法,jar 从未修改的代码中导出。但是,即使我更改了一小行或添加它也不会在断点处停止,即使它成功连接到虚拟主机(如果有帮助,我使用 vmware workstation 和 windows 7-32 位)。

可能是什么问题?

非常感谢。

我找到了解决方案,大约是 eclipse。我的源文件不在工作区中,所以在项目 build path --> under the source tab 中我使用了 Link Source 按钮。该按钮允许您将 link java 文件(不在您的工作区下)添加到您的项目中,并让这些文件作为源文件。我做了什么来解决这个问题:

  • 然后我将这些文件移动到项目的真实源文件夹下
  • 我用它创建了 jar。
  • 我停止了 Geoserver(Tomcat) 并将我的 jar 复制到 webapps\lib\
  • 我启动了 Geoserver(Tomcat) 并通过 eclipse 远程调试连接到服务器。

完成这些步骤后,我能够对我部署的每个 jar 进行远程调试。