我正在使用用Scala编写的API,该API使用SBT将其构建为JAR文件。我将JAR文件部署到虚拟机(VM)中,我可以成功地执行它-- API启动并处理请求。
现在,我正在尝试使用IntelliJ (v2016.3.4)远程调试配置在源代码Scala代码中放置断点。以下是我所做的:
1)在IntelliJ中将我的源代码作为Scala项目打开。
2)开放的VM端口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。
UPDATE:IntelliJ调试器肯定在工作--如果我暂停它,API就会停止响应请求,直到它不再暂停为止。但断点上没有停下来。
发布于 2017-02-05 22:03:01
您是否为正在调试的JAR指定了源代码附件?在IntelliJ中,查找JAR并将其与源代码相关联。
https://stackoverflow.com/questions/42033329
复制相似问题