GWT webappcreator创建Maven项目:源附件不包含文件URLClassPath.class的源

我创建了一个基于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应用程序]
localhost上的com.google.gwt.dev.DevMode:51620线程[main](已挂起(exceptionFileNotFoundException))
URLClassPath $ JarLoader.getJarFile(URL)行:644
URLClassPath $ JarLoader.access $ 600(URLClassPath $ JarLoader,URL)行:540
URLClassPath $ JarLoader $ 1.run()行:607
AccessController.doPrivileged(PrivilegedExceptionAction)行:不可用[native method]
URLClassPath $ JarLoader.ensureOpen()行:599
URLClassPath $ JarLoader。(URL,URLStreamHandler,HashMap)行:583
URLClassPath $ JarLoader $ 3.run()行:810
AccessController.doPrivileged(PrivilegedExceptionAction)行:不可用[native method]
URLClassPath $ JarLoader.getResource(String,boolean,Set)行:806
URLClassPath $ JarLoader.getResource(String,boolean)行:765
URLClassPath.getResource(String,boolean)行:169
URLClassLoader $ 1.run()行:194
AccessController.doPrivileged(PrivilegedExceptionAction,AccessControlContext)行:不可用[native method]
Launcher $ AppClassLoader(URLClassLoader).findClass(String)行:190
Launcher $ AppClassLoader(ClassLoader).loadClass(String,boolean)行:307
Launcher $ AppClassLoader.loadClass(String,boolean)行:301
Launcher $ AppClassLoader(ClassLoader).loadClass(String)行:248 C:\ Program Files \ Java \ jdk1.6.0_21 \ bin \ 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“实例”)。

在Eclipse中,转到Window – > Preferences – > Java – > Debug并禁用Suspend Execution的所有选项。

由于此错误可能不是由您的应用程序引起的,因此您不需要该类的源(URLClassPath)。 如果你真的想要,你可以在Oracle的/ Sun的Java站点上搜索源代码并将Eclipse指向它们;)