GWT + Eclipse:断点不起作用
GWT + Eclipse : Breakpoints do not work
断点在我的环境中不起作用。
我在 Eclipse 中有一个 GWT 项目运行良好,但不是断点。
对于 运行 我的项目,我执行项目 > 调试为 > 使用 Jetty 的 GWT 开发模式 > 代码编译 > 准备就绪后,然后在 Firefox 浏览器中打开我的页面 > 我
的屏幕
页面上出现developed,我点击触发了一个服务端方法的按钮,它遍历了这个方法但是没有在断点处停止
我的配置:
Eclipse Mars.2 发布 (4.5.2)
GWT 开发工具包 2.8.2
JRE 1.8.0_144
尝试 #1:
我曾尝试将以下标签放入我的 gwt.html 文件中,但没有成功:
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
谢谢
让我们从 GWT 的这句话开始 docu:
Super Dev Mode replaces the internals of Dev Mode with a different approach that works better in modern browsers. Like its predecessor (which I’ll call classic Dev Mode), Super Dev Mode allows GWT developers to quickly recompile their code and see the results in a browser. It also allows developers to use a debugger to inspect a running GWT application. However, it works differently.
您没有指定您使用的是(旧)经典开发模式还是(新)超级开发模式。其实我不知道 GWT 2.8 中旧的是否可用。
关于调试文档状态:
Super Dev Mode compiles entire GWT applications to JavaScript, similar to production mode. This means we can’t use a normal Java debugger like in classic Dev Mode. Instead, we will use the browser’s debugger. (I recommend using Chrome for now.)
所以现在你基本上有两个选择:
- 在超级开发模式下调试 Java脚本 (!) 代码 in/with 浏览器
- 使用 Eclipse 结合特定版本的浏览器调试 Java 代码(我们使用的是 FF ESR 版本),它仍然支持 GWT Dev Plugin。如果没有插件,您将无法调试客户端代码 *1:
奖金:
有一个 github 项目声明 "SDBG - Eclipse debugger for GWT SuperDevMode",但我没有尝试 it。
*1
我不是 100% 肯定这个说法,但我相信你总是可以调试你的 gwt 应用程序的服务器代码。
我的配置是GWT2.8.1,Eclipse Oxygen,SuperDevMode,SDBG chrome,都是默认设置。
调试器不会因
等断点而停止
final Button sendButton = new Button("Send to Svr");
final TextBox nameField = new TextBox();
nameField.setText("GWT User");
final Label errorLabel = new Label();
但是断点适用于像
这样的代码
public void onClick(ClickEvent event) {
sendNameToServer();
}
在 onMoudleLoad 之后添加 GWT.debugger() 之后,断点起作用了。但是与生产部署版本有什么关系吗?
假设您熟悉 SDM (SuperDevMode) 和 SBDG 并正在使用它。
Java 语句和 Java 脚本语句之间没有 1:1 关系。因此,有时,没有相关性,调试器在 Java 脚本中没有要停止的行。
在这种情况下,您必须使用
GWT.debugger();
代码中的语句以启动断点。
希望对您有所帮助。
断点在我的环境中不起作用。
我在 Eclipse 中有一个 GWT 项目运行良好,但不是断点。 对于 运行 我的项目,我执行项目 > 调试为 > 使用 Jetty 的 GWT 开发模式 > 代码编译 > 准备就绪后,然后在 Firefox 浏览器中打开我的页面 > 我
的屏幕页面上出现developed,我点击触发了一个服务端方法的按钮,它遍历了这个方法但是没有在断点处停止
我的配置: Eclipse Mars.2 发布 (4.5.2) GWT 开发工具包 2.8.2 JRE 1.8.0_144
尝试 #1: 我曾尝试将以下标签放入我的 gwt.html 文件中,但没有成功:
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
谢谢
让我们从 GWT 的这句话开始 docu:
Super Dev Mode replaces the internals of Dev Mode with a different approach that works better in modern browsers. Like its predecessor (which I’ll call classic Dev Mode), Super Dev Mode allows GWT developers to quickly recompile their code and see the results in a browser. It also allows developers to use a debugger to inspect a running GWT application. However, it works differently.
您没有指定您使用的是(旧)经典开发模式还是(新)超级开发模式。其实我不知道 GWT 2.8 中旧的是否可用。
关于调试文档状态:
Super Dev Mode compiles entire GWT applications to JavaScript, similar to production mode. This means we can’t use a normal Java debugger like in classic Dev Mode. Instead, we will use the browser’s debugger. (I recommend using Chrome for now.)
所以现在你基本上有两个选择:
- 在超级开发模式下调试 Java脚本 (!) 代码 in/with 浏览器
- 使用 Eclipse 结合特定版本的浏览器调试 Java 代码(我们使用的是 FF ESR 版本),它仍然支持 GWT Dev Plugin。如果没有插件,您将无法调试客户端代码 *1:
奖金: 有一个 github 项目声明 "SDBG - Eclipse debugger for GWT SuperDevMode",但我没有尝试 it。
*1 我不是 100% 肯定这个说法,但我相信你总是可以调试你的 gwt 应用程序的服务器代码。
我的配置是GWT2.8.1,Eclipse Oxygen,SuperDevMode,SDBG chrome,都是默认设置。 调试器不会因
等断点而停止 final Button sendButton = new Button("Send to Svr");
final TextBox nameField = new TextBox();
nameField.setText("GWT User");
final Label errorLabel = new Label();
但是断点适用于像
这样的代码 public void onClick(ClickEvent event) {
sendNameToServer();
}
在 onMoudleLoad 之后添加 GWT.debugger() 之后,断点起作用了。但是与生产部署版本有什么关系吗?
假设您熟悉 SDM (SuperDevMode) 和 SBDG 并正在使用它。
Java 语句和 Java 脚本语句之间没有 1:1 关系。因此,有时,没有相关性,调试器在 Java 脚本中没有要停止的行。
在这种情况下,您必须使用
GWT.debugger();
代码中的语句以启动断点。
希望对您有所帮助。