如何在 IntelliJ 中调试 Web 服务?

how to debug a web service in IntelliJ?

如有错误请指正:

  1. 我在 Java 中创建了一个 Web 服务 (WSDL),它有一个方法 TestCall()
  2. 我还创建了一个网站http://testwebsite:8000/abc/index.html,这个网站正在调用步骤1中的网络服务。
  3. 我在 IntelliJ 中为它创建了一个远程调试。我把testwebsite作为主机,8000作为端口号。
  4. 一旦我转到http://testwebsite:8000/abc/index.html并单击TestCall(),它没有转到IntelliJ中的断点。当我尝试远程调试 Web 服务时,出现错误:

    Unable to open debugger port (testwesite:8000), handshake failed, connection permanently closed.

谁能告诉我我错过了哪些步骤?谢谢

当您需要远程调试应用程序时,请转到 IntelliJ 中的设置 (Run->Edit configurations)。

现在点击+标志并添加Remote配置。它告诉您要添加到您在远程计算机上启动的 JVM 的启动的命令行。它将类似于:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 对于 jvm 5-8。

现在您可以使用这些额外的命令行选项在服务器上启动您的远程网络服务。然后在 IntelliJ 中启动此配置。它会告诉你Connected to target VM, address: 'server name', transport: 'socket'。您可以像使用本地调试一样添加断点。

如您所见:远程调试不使用网络端口,而是专门为调试目的而打开的另一个端口。如果服务器和您的工作站之间有防火墙,请选择一个开放的端口,或者打开防火墙端口(如果可能)。