乍一看,我真的不明白你为什么会遇到问题。也许,Eclipse 的布局方式过于混乱和令人生畏。
在我的 Eclipse 上,我在 GWT 调试期间一直使用默认码头作为服务器。但是,当部署在 Tomcat 或 JBoss 上时,有些问题不会被 jetty 捕获。
当我将 Tomcat 或 JBoss 实例添加到 Eclipse 并将我的应用程序添加到这些服务器实例时,调试立即工作。您是否错过了一项重要但简单的信息?
让我假设以下内容将填补您缺少的链接...
定位/添加您的服务器实例:
在 Eclipse 中的 Package Explorer(或 Project Explorer,其中之一)上,除了您的个人项目之外,您还会看到一个“服务器”项目。在它下面是列出所有 Tomcat 实例的配置节点。
如果您在包资源管理器中看不到“服务器”节点,可能是由于您的工作集过滤器。(如果你不知道什么是工作集......我想你需要加强你在 Eclipse 中的灵巧性)。
如果您还没有 Tomcat 实例,只需右键单击“服务器”项目以添加新服务器(Package Explorer -> New -> Server ...)。系统会询问您 Tomcat 家的位置。以及您想要的服务器实例端口号。当然,您必须确保端口号不会与您机器上任何其他 inet 操作使用的端口冲突。
第二次配置端口号
在 Package Explorer 中的服务器实例节点上,您会找到应该编辑的文件,以设置端口号以匹配您在创建新 Tomcat 实例时指定的端口号。如果您不知道要编辑哪个文件,则需要阅读您创建的 Tomcat 版本以找出哪个文件包含端口号配置。
您需要第二次配置端口,因为第一次告诉 Eclipse 期望服务器实例运行的位置和端口。第二次是配置服务器实例本身。
将您的应用程序添加到服务器
但是,“服务器”项目中的节点只允许您配置 Tomcat 实例。还有另一个称为“服务器视图”的视图来进一步配置您的 tomcat 实例。您需要从 Window->Show View->Server->Servers 启用服务器视图。
右键单击“服务器视图”中的服务器实例以添加您的应用程序。
在 Maven 生成的目标上运行调试。
有时您希望调试战争结构以找出战争中缺少哪些罐子。并逐渐从你的战争中删除罐子,以找出服务器已经提供的罐子。由于 JBoss 已经提供了许多 jar,因此您必须确定您的开发 jar 是否与 JBoss 期望的版本相同。
您将在您的工作区中创建另一个 Eclipse 项目,并在您的第二个项目中创建一个 Eclipse 文件夹软链接,以指向您的第一个项目的 Maven 生成目标。您将 target/{maven generated webapp directory} 指定为第二个项目的 webapp 目录。我所说的“maven 生成的 webapp 目录”是指 Maven 生成的解压缩中间目录(Maven 使用它来生成压缩的 war 文件)。
如果您可以在 Eclipse 开发盒上忠实地复制生产 tomcat/jboss 服务器,那么这是调试生产战争的最干净的方法。
如果你更喜欢 JBoss。
不知何故,JBoss 配置节点未列在 Package/Project Explorers 的“服务器”节点中。您需要转到您的 JBoss 安装目录来编辑它们。
远程调试。
如果你想在你的生产机器上调试应用程序,或者在另一个机器上的服务器上调试,你必须在调试下启动那个 tomcat 实例。你应该读一读。您必须指定调试端口。
然后在 Eclipse 中,在 Run->Debug Configuration->Remote Java Application 中指定应用程序和调试端口。
第一次调试时,Eclipse “可能不知道”源文件在哪里,尤其是当您的应用程序具有多个项目依赖项时。(为什么 Eclipse 不能从我的项目列表中搜索源文件?)无论如何,您必须指定在哪里可以找到您的源文件。然后,当您的调试遍历到另一个项目依赖项时,您将不得不覆盖源文件的位置。
所以,瞧!这就是我进行调试的方式。我建议您尽可能避免远程调试,除非您需要诊断生产问题。除非您正在进行远程调试,否则不要尝试将战争部署到本地服务器,而只需将项目与服务器实例相关联即可。
Eclipse 太混乱了
我知道 Eclipse 太混乱了,你必须深入了解它的特性。你只需要忍受它。Eclipse 菜单和视图显然针对以插件程序员为中心而非以用户为中心进行了优化。
例如,我为什么要去“帮助”安装新软件?我曾经期望“帮助->安装新软件”是安装新软件的指导手册。
Eclipse 团队没有将这些操作组合在一起,以便我可以在 Package Explorer 中将应用程序添加到服务器实例,这让我很生气(也让我很恼火)。为什么不?作为用户,我希望只看到一个配置服务器的入口点。
为了减轻困惑,我喜欢鼓励人们下载并安装 Springsource 的 Eclipse (STS) 版本。它与 Eclipse 相同,只是 STS 安装了基本部件,并且有一个指向可兼容安装插件的仪表板。Tomcat 预装为 VMware tc Server。并且视图已正确配置以显示服务器实例。并且预装了正确的可使用的 Eclipse-Maven 桥接插件。