【发布时间】:2015-07-07 09:56:35
【问题描述】:
几天后 Eclipse 插件开始显示此错误。
该项目是一个基于 Maven 的 App Engine 项目,使用 Google Eclipse Plugin 提供的 WTP 集成启动 dev-server。
AVVERTENZA:失败 com.google.appengine.tools.development.DevAppEngineWebAppContext@345541bd{/,C:\Noovle\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\Ape_Core}: java.lang.NoClassDefFoundError: com/google/appengine/api/utils/SystemProperty
这是加载服务器时的完整堆栈跟踪
lug 07, 2015 11:43:12 AM java.util.prefs.WindowsPreferences <init>
AVVERTENZA: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
lug 07, 2015 11:43:12 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFORMAZIONI: Successfully processed C:\Noovle\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\Ape_Core\WEB-INF/appengine-web.xml
lug 07, 2015 11:43:12 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFORMAZIONI: Successfully processed C:\Noovle\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\Ape_Core\WEB-INF/web.xml
lug 07, 2015 11:43:13 AM com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties
INFORMAZIONI: Overwriting system property key 'java.util.logging.config.file', value 'C:\Users\Nicola\.m2\repository\com\google\appengine\appengine-java-sdk\1.9.22\appengine-java-sdk\appengine-java-sdk-1.9.22\config\sdk\logging.properties' with value 'WEB-INF/logging.properties' from 'C:\Noovle\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\Ape_Core\WEB-INF\appengine-web.xml'
lug 07, 2015 11:43:13 AM com.google.apphosting.utils.jetty.JettyLogger info
INFORMAZIONI: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
lug 07, 2015 11:43:14 AM com.google.apphosting.utils.jetty.JettyLogger info
INFORMAZIONI: jetty-6.1.x
lug 07, 2015 11:43:18 AM com.google.apphosting.utils.jetty.JettyLogger warn
AVVERTENZA: failed com.google.appengine.tools.development.DevAppEngineWebAppContext@345541bd{/,C:\Noovle\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\Ape_Core}: java.lang.NoClassDefFoundError: com/google/appengine/api/utils/SystemProperty
lug 07, 2015 11:43:18 AM com.google.apphosting.utils.jetty.JettyLogger warn
AVVERTENZA: failed JettyContainerService$ApiProxyHandler@2b8d9248: java.lang.NoClassDefFoundError: com/google/appengine/api/utils/SystemProperty
lug 07, 2015 11:43:18 AM com.google.apphosting.utils.jetty.JettyLogger warn
AVVERTENZA: Error starting handlers
java.lang.NoClassDefFoundError: com/google/appengine/api/utils/SystemProperty
at it.noovle.ape.tools.ToolsEnvironment.getApplicationVersion(ToolsEnvironment.java:26)
经过一番分析,我发现了问题:当服务器发布(甚至创建一个新服务器)时,WEB-INF 中的lib 文件夹没有创建。
我很确定,因为如果我从另一个项目(它们共享相同的库)复制 lib 文件夹,服务器启动时不会出现问题。
我尝试从头开始创建新服务器,但正如预期的那样,lib 文件夹丢失了。
在 Eclipse 的Error Log 选项卡中,在服务器的创建和发布过程中没有显示任何问题
我还需要澄清一下,如果我以devserver maven 目标启动项目,则完全没有问题。
我在带有 Eclipse Mars 的 Windows 8 上运行(我的同事有 Luna,但显示了同样的问题)。
谷歌插件的版本是Google Plugin for Eclipse 4.4 3.8.0.v201410302155-rel-r44。我的另一个同事和 Eclipse Luna 有相同版本的插件,没有显示这个问题
有没有办法调试WTP插件的步骤来理解为什么lib文件夹没有创建?
这种行为的可能解释是什么?
【问题讨论】:
标签: maven eclipse-wtp google-plugin-eclipse google-eclipse-plugin