如果我做错了什么,请纠正我:
- 我用 Java 创建了一个 Web 服务 (WSDL),它有一个方法
TestCall()
。 - 我还创建了一个网站 http://testwebsite:8000/abc/index.html ,并且该网站正在调用步骤 1 中的 Web 服务。
- 我在 IntelliJ 中为其创建了远程调试。我将 testwebsite 作为主机,8000 作为端口号。
- 有一次我去了http://testwebsite:8000/abc/index.html然后点击
TestCall()
,并没有走到IntelliJ中的断点处。当我尝试远程调试 Web 服务时,出现错误:Unable to open debugger port (testwesite:8000), handshake failed, connection permanently closed.
有人可以告诉我我错过了哪些步骤吗?谢谢
最佳答案
当您需要远程调试应用程序时,请转到 IntelliJ 中的设置(运行 -> 编辑配置
)。
现在单击+
符号并添加Remote
配置。它告诉您要添加到远程计算机上启动的 JVM 启动中的命令行。它会是这样的:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
适用于 jvm 5-8。
现在您可以使用这些额外的命令行选项在服务器上启动远程 Web 服务。然后您在 IntelliJ 中启动此配置。它会告诉您已连接到目标虚拟机,地址:“服务器名称”,传输:“套接字”
。您可以按照本地调试习惯添加断点。
如您所见:远程调试不使用 Web 端口,而是专门为调试目的而打开的不同端口。如果服务器和您的工作站之间有防火墙,请选择打开的端口,或打开防火墙端口(如果可能)。
关于java - 如何在 IntelliJ 中调试 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799330/