2014-09-19 48 views
5

我目前的开发过程是改变Java代码,mvn包,ant更新,重启我的tomcat服务器。我真的很想能够添加断点,并且现场调试我的DSpace实例。最近我遇到了一个有关oceanlink代码的问题,并且想要调试,但不得不求助于println/log info来查看变量。在DSpace中,如何使用IntelliJ IDEA调试实时代码?

我熟悉的wiki页面:https://wiki.duraspace.org/display/DSPACE/IDE+Integration+-+DSpace+and+IDEA

我只是想知道关于这个问题,如果有更多的凝聚,近期指导。

+0

只是为了确保我明白的问题:你已经运行行家,从思想内蚂蚁和Tomcat?如果您在IntelliJ中启动并停止Tomcat,则进入调试模式意味着打开启动调试按钮而不是tomcat的常规启动按钮。 – 2014-09-20 08:00:05

+0

在IDEA中不运行任何它。基本设置只是使用IDEA来查看和更改代码。更改代码后,我手动重新部署:mvn包,ant更新,tomcat重启。在试图遵循IntelliJ指南的时候,它提到了部署一个神器,我不知道该放什么东西。 (Tomcat服务器配置的“部署”选项卡)。 – 2014-09-25 13:48:53

回答

5

我创建描述IDEA我们的开发者设置的视频演示: https://www.youtube.com/watch?v=mrLl1qPsy6I

接近它显示的视频哪些模块部署的结束以及如何安排的背景下路径。以前的视频

不到两年后,这里的最后调试视频: https://www.youtube.com/watch?v=V5Zi71zYmf8

一个不包括在视频超级强大的功能是“计算表达式”。当程序在断点处暂停时,可以使用“求值表达式”对程序的当前状态执行任意方法调用。

3

布拉姆提供了一个关于这个主题的出色教程,我可以推荐的另一个策略有时可以更快地设置远程调试。

目标是在tomcat或DSpace CLI的现有已部署DSpace Web应用程序中进入“远程调试模式”。然后你可以直接连接它,而不需要在Intellij中配置嵌入式tomcat。这很好,因为它可以在本地使用本地主机完成,也可以通过网络在现有开发服务器主机名/ IP上远程完成。

  1. 选择Run>编辑配置
  2. 选择添加(+)的选项>远程
  3. 配置远程设置,设置相应的主机/端口配置为您运行Tomcat或CLI主机位置,并提供一个适当的名称( DSpace Remote)
  4. 将第一个文本框设置复制到您的tomcat或CLI实例的env设置中。

    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 
    

    4.a.对于[DSACE_HOME]/bin/dspace中的DSpace CLI,请在java命令之前添加以下行(请注意,我们将suspend设置为y,以确保我们有机会在应用程序执行前连接到调试端口

    export JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" 
    

    4.B有关Tomcat catalina.sh脚本在调试模式下启动tomcat已经提供的Tomcat配置导出ENV设置。(注意,我们设置暂停为n,这样的tomcat正常启动。

    export JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 
    %TOMCAT_HOME%/bin/catalina.sh jpda start 
    
  5. 一旦您已经启动了CLI应用程序或Tomcat,然后您可以连接您配置的调试设置。首先从t中选择您的调试配置他在工具栏上运行/调试下拉菜单,并使用“调试”图标以调试模式启动。

这将连接到调试端口(如果您有问题检查防火墙限制)。您现在应该可以设置断点,并在Intellij中在服务器上执行时逐步执行代码。

注意事项是,您需要完成整个mvn build/ant部署才能将任何更改导入运行的tomcat/cli应用程序。为了加快开发人员的周转速度,最好直接在intellij中运行war/cli,并且使用Bram的教程非常适合此目的。但是,如果这不可行,这是能够在现有的现场测试站点上进行调试的好选择。

干杯, 马克