Java 我可以调试Tomcat运行的GWT-RPC过程和ApacheWebServer(使用IntelliJ)运行的静态内容吗
在我的Windows开发机器上,我有IntelliJ设置,可以通过ApacheWebServer运行静态html,并使用Tomcat运行GWT-RPC服务。除了调试GWT-RPC服务的服务器代码外,一切都正常。是否仍有可能以这种方式调试GWT-RPC服务器代码?我理解您的说法是否正确Java 我可以调试Tomcat运行的GWT-RPC过程和ApacheWebServer(使用IntelliJ)运行的静态内容吗,java,apache,tomcat,gwt,intellij-idea,Java,Apache,Tomcat,Gwt,Intellij Idea,在我的Windows开发机器上,我有IntelliJ设置,可以通过ApacheWebServer运行静态html,并使用Tomcat运行GWT-RPC服务。除了调试GWT-RPC服务的服务器代码外,一切都正常。是否仍有可能以这种方式调试GWT-RPC服务器代码?我理解您的说法是否正确 您有一个GWT应用程序在intelliJ中以开发模式hostet运行 这个应用程序的serverpart在tomcat中运行hostet 如果是这样,您应该连接intelliJ。好的,我现在可以使用所描述的设置
- 您有一个GWT应用程序在intelliJ中以开发模式hostet运行
- 这个应用程序的serverpart在tomcat中运行hostet
如果是这样,您应该连接intelliJ。好的,我现在可以使用所描述的设置调试服务器代码: 为了完整起见,我将包括我已经知道和完成的步骤: 首先,您必须配置Tomcat以支持远程调试。克里斯蒂安·库特巴赫(Christian Kuetbach)在回答中给出的链接中描述了这一点。简而言之,它向jvm添加了两个选项:
-Xdebug
-Xrunjdwp:transport=dt_socket,address=<yourport>,server=y,suspend=n
-Xdebug
-Xrunjdwp:transport=dt_套接字,地址=,服务器=y,挂起=n
(我已经做了这一步)
第二步是我需要帮助的地方,配置IntelliJ
您必须包括远程运行/调试配置。在此配置中,您需要从步骤1中指定端口。此外,在启动GWT调试之前,您必须启动此远程调试配置,以便它将连接到Tomcat调试套接字
现在,您可以在同一个IntelliJ会话中调试客户端代码和服务器代码 我是这样做的:
http://localhost:8080/applicationContextThatYouSpecifiedInTomcatDeployentTabConfiguration
- 确保将开发模式参数设置为“-noserver-binddress 0.0.0.0”noserver意味着当您从intelliJ启动GWT配置时,它不会启动嵌入式服务器,因为我们现在使用Tomcat作为服务器李>
?gwt.codesvr=127.0.1.1:9997
。
例如,如果在URL中有http://localhost:8080/hiThereMyApp/index.html
新的URL看起来应该像http://localhost:8080/hiThereMyApp/index.html?gwt.codesvr=127.0.1.1:9997
另外,有时浏览器的gwt插件会抱怨127.0.1.1主机不允许作为gwt代码库,在这种情况下,尝试将
127.0.1.1
替换为localhost
或计算机的ip地址,或者尝试配置浏览器的gwt插件以实际允许所需的gwt代码库。没错,GWT在开发模式下运行,但在本地Web服务器上运行(使用-noserver选项)。我已经尝试添加建议的jvm选项,但IntelliJ没有在断点上中断。那么,我应该在何处以及如何设置IntelliJ IDE,以便它知道如何调试远程Java代码?感谢您的详细回答,但是问题是如何将apache webserver用于静态gwt客户端代码,将tomcat用于Web服务。