Eclipse Mars - Web应用程序 - Tomcat - Maven - 部署和调试

时间:2015-11-28 13:44:29

标签: eclipse maven debugging tomcat java-ee

在Eclipse Mars的本地apache tomacat服务器中运行和调试Simple(教程级别)Maven Web App有一个简单的简单方法吗?

我正在开发一个网络应用程序,我有时可以运行它,有时候不能运行它,我有时可以调试它,有时候不能。它有点令人沮丧。

我目前的偏好是从具有目标var scrollableDist,curScrollPos,wheelEvent,dY; $('#child-element').on('wheel', function(e){ scrollableDist = $(this)[0].scrollHeight - $(this).outerHeight(); curScrollPos = $(this).scrollTop(); wheelEvent = e.originalEvent; dY = wheelEvent.deltaY; if ((dY>0 && curScrollPos >= scrollableDist) || (dY<0 && curScrollPos <= 0)) { return false; } }); 的Maven配置运行项目。它始终构建和运行,但它不会调试,即如果我在servlet代码中的Java代码中放置断点,则不会到达。 (有时它是我第一次运行项目时达到的,但是它找不到某个文件的源代码,并且在后续运行中停止中断...)

我也试过&#34; Debug on Server&#34;配置,但是,在那种情况下,我必须在运行项目之前运行Maven安装,否则,将找不到某些类。而且现在也停止了工作。它只是无法从src中找到一些类,尽管Web部署程序集配置将源部署到WEB-INF / classes中。

2 个答案:

答案 0 :(得分:1)

(你可能已经被投票了,因为有一些问题归结为一个。我会尝试回答所有问题,因为我对你的痛苦太熟悉了)

Eclipse的maven集成在调试webapps方面非常不稳定,即使使用MARS也是如此。你确实可以使用tomcat6:run或tomcat7:运行webapps。以下是一些让我保持理智的“最佳实践”:

  • 始终执行'clean'作为目标的一部分。
  • 确保遵循标准的maven WAR项目布局。您可以打破这一点,但必须小心指定META-INF等的所有重写路径。
  • 当您在Eclipse中停止/终止进程时,您经常会发现该进程实际上仍在继续运行,但已将其自身与eclipse.exe分离为父进程。您需要手动终止java.exe进程,否则您将发现“端口已在使用中”错误。 ProcessExplorer非常适合关注此事。
  • 当您点击断点并且显示“未找到来源”时,您可以尝试一些操作。
    • 在窗口首选项 - maven / installation下添加maven安装。将其设置为默认值。
    • 在运行配置中,确保使用的是系统安装而不是嵌入式安装。
    • 当您点击断点时,请关闭编辑器,然后通过单击调试树中的点重新打开它。

答案 1 :(得分:0)

所以你试图用目标调试一个maven项目&#34; tomcat:run&#34;在Eclipse中,应用程序在设置的断点处断开,但是你得到了#34; Source not found&#34;错误。

enter image description here

按照以下步骤解决此问题:

  1. 转到您的调试配置
  2. 在主要标签中,确保您有&#34;解决工作区工件&#34;检查
  3. 确保将基本目录设置为您的maven项目
  4. 在“源”选项卡中,确保已将项目添加为&#34; Java项目&#34;或&#34;工作区&#34;或&#34;项目&#34;
  5. 第4步很重要,Add - &gt; Java项目/项目并选择您的项目