Java gwt-dev.jar太大,无法上载到appengine。我可以拆分一个jar文件吗,或者。。。什么?
我最近不得不将gwt-dev.jar添加到我的/war/WEB-INF/lib目录中,现在当我尝试部署到appengine时,我得到: java.lang.IllegalStateException: 发现jar文件太大,无法上载: “C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\appcfg997121487626565419.tmp\WEB-INF\lib\gwt-dev.jar”。考虑使用-Enable JavaRead。< /P> 我正在使用GoogleEclipse插件,据我所知,我不能使用--enable\ujar\uSpliting。啊Java gwt-dev.jar太大,无法上载到appengine。我可以拆分一个jar文件吗,或者。。。什么?,java,google-app-engine,gwt,jar,Java,Google App Engine,Gwt,Jar,我最近不得不将gwt-dev.jar添加到我的/war/WEB-INF/lib目录中,现在当我尝试部署到appengine时,我得到: java.lang.IllegalStateException: 发现jar文件太大,无法上载: “C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\appcfg997121487626565419.tmp\WEB-INF\lib\gwt-dev.jar”。考虑使用-Enable JavaRead。< /P> 我正在使用GoogleEclip
我可以手动拆分jar文件吗?我只需要这东西的一小部分。如果没有,我该怎么办?取出罐子。您将得到一个类似于java包层次结构的文件夹结构(例如com/google/gwt/core)。将整个提取的目录结构复制到war/WEB-INF/lib中。解决了 在linux上,可以使用
jar-xvf gwt-dev.jar
提取jar。在windows上,只需将其重命名为zip,您就可以像提取普通zip文件一样提取它(jar文件实际上是伪装的zip文件)
任何大于1MB的文件都不会上载到应用程序引擎。您可以使用Windows命令行:
\path\to\appcfg.cmd --enable_jar_splitting update path\to\war
查看如何创建部署快捷方式。
gwt用户
不应出现在结果jar中,因为它的依赖范围是提供的
。或者至少应该是这样。建议使用maven clean插件
从生成的WAR文件中删除jar。@Robert是对的,您应该在上传之前删除gwt user.jar
。如果您真的有一个大罐子,请使用@systempuntoout建议的——启用罐子分割。如果您使用的是Maven,则可以通过splitJars
参数使用与之相当的--enable\u jar\u spliting
。我也遇到了同样的错误(具有讽刺意味的是,出于同样的原因,gwt-dev.jar添加到WEB-INF/lib中以缓和依赖关系)。最后,我通过放弃gwt-dev.jar并将xalan.jar添加到WEB-INF/lib中,使应用程序能够启动并上传到应用程序引擎
我认为Peter Knego是对的,最好不要上传gwt-dev.jar为什么需要部署gwt-dev.jar?您应该只需要gwt-servlet.jar,它有一个转换器的实现,在我开始使用RESTEasy之后,服务器开始需要这个转换器。我没有问太多问题;)找到RESTEasy依赖项并将其单独绑定,会更好地为您服务。您不知道GWT是否会在以后的版本中包含它,或者引入不兼容。我使用的是Resteasy,没有这样的问题。一定是别的原因。我的错,你是对的。在您的圣诞礼物之前,它曾经是1MB;-)错误-不要认为这是正确答案。答案通常是正确的,但上下文是错误的。正如其他人指出的那样,gwt-dev.jar
不应该上传到服务器,因为它只在编译时需要。他没有问他是否应该部署它,他问我如何部署它。发布后,我做了正确的事情,并在其他地方找到了我需要的类的实现,但我认为这是对我所问问题的正确回答。谢谢你的帮助和建议!