在DSpace中,如何使用IntelliJ IDEA调试实时代码?

时间:2014-09-19 15:44:33

标签: dspace

我目前的开发过程是更改Java代码,mvn包,ant更新,重新启动我的tomcat服务器。我真的希望能够添加断点,并实时调试我的DSpace实例。我最近遇到了一个关于oceanlink代码的问题,想调试,但不得不求助于println / log信息来查看变量。

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

我只是想知道是否有关于这个主题的更多浓缩,最近的指导。

2 个答案:

答案 0 :(得分:5)

我创建了一个视频演练,描述了我们在IDEA中的开发人员设置: https://www.youtube.com/watch?v=mrLl1qPsy6I

在视频的末尾附近,它显示了要部署的模块以及如何安排上下文路径。

在上一个视频播出后不到两年的时间,最后是调试视频: https://www.youtube.com/watch?v=V5Zi71zYmf8

视频中未涵盖的一个超级强大功能是"评估表达式"。当程序在断点处暂停时,您可以使用"计算表达式"对程序的当前状态执行任意方法调用。

答案 1 :(得分:3)

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

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

  1. 选择运行>编辑配置
  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配置导出env设置,以在调试模式下启动tomcat。 (注意我们将suspend设置为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后,即可连接已配置的调试设置。首先从工具栏上的Run / Debug下拉列表中选择Debug配置,然后使用" Debug"在调试模式下启动。图标。

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

    需要注意的是,您需要完成整个mvn build / ant部署,以便对正在运行的tomcat / cli应用程序进行任何更改。为了加快开发人员的周转时间,最好直接在intellij中运行war / cli,并且使用Bram的教程非常适合此目的。但是,如果无法做到这一点,这是一个很好的选择,可以在现有的实时测试站点上进行调试。

    干杯, 标记