我正在使用Scala编写的API进行工作,该API使用SBT将其构建到JAR文件中。我将JAR文件部署到虚拟机(VM),并且可以成功执行-API启动并处理请求。
现在,我尝试使用IntelliJ(v 2016.3.4)远程调试配置在源Scala代码中放置断点。这是我所做的:
1)在IntelliJ中打开我的源代码作为Scala SBT项目。
2)打开虚拟机端口5005
3)在VM上执行JAR:
java -noverify "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" -cp /home/vagrant/shared/build/geotrellis-chatta-demo-assembly-0.1-SNAPSHOT.jar geotrellis.chatta.Main
我得到以下输出:
Listening for transport dt_socket at address: 5005
4)在IntelliJ中添加了远程调试配置并启动了它。IntelliJ控制台向我显示了这一点:
Connected to the target VM, address: 'localhost:5005', transport: 'socket'
但是,我的所有断点都无效。
我在上述步骤中缺少什么吗?我对Scala还是很陌生,多年来没有认真使用Java,只是从IntelliJ开始。
更新:IntelliJ调试器肯定可以正常工作-如果我暂停它,则该API会停止对请求的响应,直到它变得未暂停为止。但是断点没有停止。
您是否为要调试的JAR指定了源代码附件?在IntelliJ中,找到JAR并将其与源代码关联。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句