【发布时间】:2016-09-12 16:58:51
【问题描述】:
更新
按照我得到的建议,我决定部署一个较小的项目,其中只有一个类调用此行:
_cache = MemcacheServiceFactory.getMemcacheService();
现在我收到此错误:
java.lang.NoClassDefFoundError: com/google/appengine/api/memcache/MemcacheServiceFactory
我读到here 说这是因为我错过了appengine-api-1.0-sdk.jar 但here 它说不需要包含它。
我现在的问题是 如果我尝试将它包含在部署中,通过将其添加到 WEB-INF\lib 目录,它会被忽略。如果我尝试使用不同的 jar(非与 GAE 相关)它可以很好地部署。
例如,这两个版本在 \lib 中都有 appengine-api-1.0-sdk.jar,但版本 5 也有不同的 jar (bcprov-jdk15on-147.jar)。这两者之间的大小差异是因为这个。
总而言之,我的问题是,我应该部署appengine-api-1.0-sdk.jar 吗?
如果是这样,那么我怎样才能避免它被忽略?
项目依赖项,它们是将从 NetBeans 部署到 GAE 的 Web 应用程序的默认依赖项
我正在尝试实现 Memcache,以便在部署应用程序时可以使用 GAE 提供的缓存。
一旦它被部署,当我尝试运行它时,我会得到一个IllegalStateException:
java.lang.IllegalStateException: Committed
这发生在这一行:
private MemcacheService _cache=MemcacheServiceFactory.getMemcacheService();
我能做些什么来解决它?
【问题讨论】:
-
你确定你想的那行代码(MemCacheService)是罪魁祸首吗?我在堆栈跟踪中没有看到任何支持您的假设的内容。如果您注释掉该行/相关,该应用程序是否有效?例外是 Jetty 试图告诉您响应已经提交并且无法重置响应。 Javadoc
-
@SaiPullabhotla 我在这行代码之前和之后添加了一个
System.out.println,之后的那个永远不会被打印出来,但之前的那个会。其余代码使用_cache -
也许你应该在一个独立的 Servlet 中试试这个sample code 看看会发生什么。
-
@SaiPullabhotla 感谢您的提示,我只是意识到错误是什么,但我也没有设法修复那个错误
-
您的项目中有哪些确切的依赖项?
标签: java google-app-engine jar memcached appcfg