我正在尝试使用Google Plugin for eclipse将GWT / GAE项目作为Web应用程序运行,但我一直遇到错误:
Unable to find path/to/war/WEB-INF/lib/shared
更具体地说,我得到:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.google.appengine.tools.util.Logging.initializeLogging(Logging.java:35)
at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:77)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
Caused by: java.lang.IllegalArgumentException: Unable to find path/to/war/WEB-INF/lib/shared
at com.google.appengine.tools.info.SdkInfo._getLibs(SdkInfo.java:76)
at com.google.appengine.tools.info.SdkInfo.getLibsRecursive(SdkInfo.java:69)
at com.google.appengine.tools.info.SdkInfo.determineSharedLibFiles(SdkInfo.java:302)
at com.google.appengine.tools.info.SdkInfo.init(SdkInfo.java:237)
at com.google.appengine.tools.info.SdkInfo.getSdkRoot(SdkInfo.java:190)
at com.google.appengine.tools.info.SdkImplInfo.<clinit>(SdkImplInfo.java:19)
我之前运行的这个应用程序运行正常,但是我已经用了一段时间了。 GWT代码编译得很好。只有在尝试在开发服务器中运行此错误时才会出现此错误。通过我以前的提交,我似乎没有看到WEB-INF / lib / shared曾经存在的时间,所以要么这是一些新的要求,要么共享在过去从未提交过。
The only "solution"我发现他们通过删除appengine-utils-client-1.0.jar和appengine-utils-server-1.0.jar来解决这个问题。但是,这些似乎都不在我的项目中,所以我认为这个解决方案不会对我有帮助。
有什么建议吗?非常感谢。
答案 0 :(得分:2)
升级到GAE 1.8.0后,我也遇到了这个问题。从WEB-INF / lib目录中删除appengine-tools-api.jar解决了这个问题。
答案 1 :(得分:0)
对于任何遇到同样问题的人,我最终创建了一个新的GWT设置并复制了我的src文件,以及我专门创建/修改的WEB-INF文件。
答案 2 :(得分:0)
使用GWTUpload时出现同样的错误。之前的帖子帮助我走上了正确的轨道,虽然我没有在我的web-inf / lib中提到的罐子。最后通过为appengine-tools-sdk添加Maven排除来解决它。所以我的最终GWTUpload pom.xml Maven代码是:
<!-- GWTUpload -->
<dependency>
<groupId>com.googlecode.gwtupload</groupId>
<artifactId>gwtupload</artifactId>
<version>0.6.6</version>
</dependency>
<dependency>
<groupId>com.googlecode.gwtupload</groupId>
<artifactId>gwtupload-gae</artifactId>
<version>0.6.6</version>
<exclusions>
<!-- This exclusion got rid of the super hard to track down IllegalArgumentException on startup related to SdkInfo -->
<exclusion>
<artifactId>appengine-tools-sdk</artifactId>
<groupId>com.google.appengine</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.3</version>
</dependency>
</dependencies>