我有一个带有maven-jetty插件的maven gwt应用程序,我试图用'mvn jetty:run-war'和'mvn gwt:debug'来调试代码,它以gwt dev模式启动应用程序,所以我可以调试客户端代码但不调试服务器端,如何调试客户端和服务器端代码?我试过'mvnDebug jetty:run-explosion',它说:
Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
然后我提出一个浏览器指向localhost:8000,没有加载任何东西,并在终端中吐出消息:
Debugger failed to attach: handshake failed - received >GET / HTTP/1.1< - excepted >JDWP-Handshake<
Debugger failed to attach: handshake failed - received >GET / HTTP/1.1< - excepted >JDWP-Handshake<
Debugger failed to attach: timeout during handshake
我不知道这是什么意思?有人可以帮帮我吗?
答案 0 :(得分:1)
在您列出的情况下,端口8000是远程调试器将连接到远程实例的端口,您无需查看该应用程序。 GUI本身最有可能超过8080或8888,但这取决于Jetty中的配置或者您是否在托管模式下运行。
您需要将远程调试器连接到Jetty,例如Eclipse或NetBeans,无论您的IDE是什么。
http://docs.codehaus.org/display/JETTY/Debugging+Jetty+with+Eclipse http://www.vijaykiran.com/2009/05/12/debugging-maven-jetty-web-application-in-netbeans/
使用托管模式也可能有所帮助: http://code.google.com/webtoolkit/doc/1.6/FAQ_DebuggingAndCompiling.html#How_do_I_use_my_own_server_in_hosted_mode_instead_of_GWT的
更高级: http://www.vogella.de/articles/EclipseDebugging/article.html
答案 1 :(得分:0)
从IDE启动调试后,您必须创建远程调试。在Eclipse中,您可以通过转到Debug Configuration
并创建新的Remote Java Application
配置来完成此操作。然后只需在浏览器中刷新应用页面并开始调试。
如果您使用其他IDE,则必须自行了解如何使用远程调试。它到处都是一样的。