【问题标题】:Migrate from File API to Google Cloud Storage从 File API 迁移到 Google Cloud Storage
【发布时间】:2015-06-17 14:18:11
【问题描述】:

我正在尝试按照 Google 的文档从 File API(即将过时)迁移到 Google Cloud Storage。

我正在关注(使用 Eclipse)https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/migrate#migration(写得不好 - 来自许多其他写得不好的文档)

我用 git 从https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/download 下载了客户端代码并使用 ant 构建它。

比我复制了以下罐子 appengine-gcs-client.jar 番石榴15.0.jar joda-time-2.3.jar

我从我的项目中删除了一些旧的番石榴罐。

将 PortOfFilesAPIGuestbookServlet 复制到我的项目中

添加到 web.xml

<servlet>
    <servlet-name>PortOfFilesAPIGuestbookServlet</servlet-name>
    <servlet-class>com.google.appengine.demos.PortOfFilesAPIGuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>PortOfFilesAPIGuestbookServlet</servlet-name>
    <url-pattern>/tst1</url-pattern>
</servlet-mapping>

并运行示例

结果:

/tst1 java.lang.NoSuchMethodError 的错误: com.google.common.base.Stopwatch.createUnstarted()Lcom/google/common/base/Stopwatch; 在 com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:156) 在 com.google.appengine.tools.cloudstorage.GcsServiceImpl.createOrReplace(GcsServiceImpl.java:70) 在 com.google.appengine.demos.PortOfFilesAPIGuestbookServlet.doGet(PortOfFilesAPIGuestbookServlet.java:41) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

请帮我解决它,或提供指向正确迁移文档的链接。

谢谢

【问题讨论】:

  • Google Guava 到 18 版本。可能 15 版本没有包含所需的方法

标签: google-app-engine


【解决方案1】:

首先,在 Eclipse 中,从构建路径中删除一个 jar 是不够的 - 您必须从 war/WEB-INF/lib 中删除它。

否则它仍然会在运行时使用(构建路径仅用于编译时)

在我的情况下,我必须从我的库中删除旧的番石榴罐。

在那之后我仍然有一些丢失的东西问题 - 我使用http://grepcode.com/ 来查找相关的 jar。

我最终从我的库中删除了 google-collect-1.0-rc1.jar、guava-11.0.2.jar、servlet-api-2.3.jar

注意: 为了让代码也能在谷歌服务器上运行,我必须将所有 jar 从 appengine-gcs-client-read-only/java/dist 复制到项目 lib

【讨论】:

    猜你喜欢
    • 2015-08-01
    • 2021-07-19
    • 2016-05-25
    • 2016-01-11
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    相关资源
    最近更新 更多