我创建了一个基于Maven2的GWT应用程序,将其导入Eclipse,当我调试为GWT Web应用程序时,Eclipse调试会话暂停FileNotFoundException。它显示一个窗口:源附件不包含文件URLClassPath.class的源。
我已经彻底清除了Eclipse工作区(和.metadata子目录),创建/导入了一个空白项目,同样的事情发生了。如果我运行为 GWT Web应用程序,它可以正常工作(有几个警告)。我需要调整什么来使其在调试模式下工作?
1)创建应用
webAppCreator -noant -maven -XnoEclipse -out MyApp com.example.MyApp
2)导入和更改设置
将应用程序导入Eclipse工作区,勾选“使用Google Web Toolkit”复选框。
“此项目有一个WAR目录”已选中。 WAR目录设置为src / main / webapp。未选中“从此目录启动和部署”。
3)调试为
现在按下调试工具栏按钮,选择“GWT Web Application”,然后选择target / www作为WAR目录。你应该看到同样的问题。 “调试”窗格中的调用堆栈包含以下内容:
MyApp.html [Web应用程序]
com.google.gwt.dev.DevMode at localhost:51620线程[主要] (暂停(例外 FileNotFoundException异常))
URLClassPath $ JarLoader.getJarFile(URL) 线:644
URLClassPath $ JarLoader.access $ 600($ URLClassPath JarLoader, URL)行:540
URLClassPath $ JarLoader $ 1.run()行: 607个
AccessController.doPrivileged(的PrivilegedExceptionAction) line:not available [native method]
URLClassPath $ JarLoader.ensureOpen() 行:599
URLClassPath $ JarLoader(URL, 的URLStreamHandler, HashMap)行:583
URLClassPath $ JarLoader $ 3.run()行: 810个
AccessController.doPrivileged(的PrivilegedExceptionAction) line:not available [native method]
URLClassPath $ JarLoader.getResource(字符串, boolean,Set)line:806
URLClassPath $ JarLoader.getResource(字符串, boolean)line:765
URLClassPath.getResource(字符串, boolean)line:169
URLClassLoader $ 1.run()行:194
AccessController.doPrivileged(的PrivilegedExceptionAction, lineControlContext)line:not 可用[本地方法]
启动$ AppClassLoader(URLClassLoader的).findClass(字符串) line:190
启动$ AppClassLoader器(classloader).loadClass(字符串, boolean)line:307
启动$ AppClassLoader.loadClass(字符串, boolean)line:301
启动$ AppClassLoader器(classloader).loadClass(字符串) line:248 C:\ Program 文件\的Java \ jdk1.6.0_21 \斌\ javaw.exe的 (2010年11月28日15:28:32)
GWT:2.1。
Eclipse:Helios(3.6)。
Maven:2.2.1。
JRE / JDK:JDK 1.6.0.21。
适用于Eclipse 3.6版本1.4.0.v201010280102的Google插件。
Eclipse的Maven Integration(m2eclipse)版本0.10.2.20100623-1649(已配置为指向Maven 2.2.1环境而不使用嵌入式Maven3“实例”)。
答案 0 :(得分:9)
在Eclipse中转到Window - >偏好 - > Java - >调试并禁用Suspend Execution的所有选项。
由于此错误可能不是由您的应用程序引起的,因此您不需要该类的源(URLClassPath)。如果您真的想要,可以在Oracle的/ Sun的Java站点上搜索源代码并将Eclipse指向它们;)