【问题标题】:java.lang.NoClassDefFoundError: com/google/appengine/tools/cloudstorage/GcsFilenamejava.lang.NoClassDefFoundError: com/google/appengine/tools/cloudstorage/GcsFilename
【发布时间】:2017-12-15 09:56:20
【问题描述】:

我正在尝试简单地重命名应用引擎上的云存储文件。

在执行期间,它返回以下错误:

java.lang.NoClassDefFoundError: com/google/appengine/tools/cloudstorage/GcsFilename at com.GAEApplication.GAEApplicationServlet.loadFile(GAEApplicationServlet.java:40) 在 com.GAEApplication.GAEApplicationServlet.moveFile(GAEApplicationServlet.java:33) 在 com.GAEApplication.GAEApplicationServlet.doGet(GAEApplicationServlet.java:28) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)

错误代码行是:

private byte[] loadFile(String bucket, String fileName) throws IOException {

        GcsFilename gcsFileName = new GcsFilename(bucket, fileName);
         GcsService gcsService = GcsServiceFactory.createGcsService();
            GcsInputChannel readChannel = gcsService.openReadChannel(gcsFileName, 0);
            InputStream in = newInputStream(readChannel);
            return IOUtils.toByteArray(in);
    }

我包含的罐子是:

  1. appengine-api-1.0-sdk-1.9.34.jar
  2. appengine-api-labs.jar
  3. appengine-endpoints-deps.jar appengine-endpoints.jar
  4. appengine-jsr107cache-1.9.34.jar asm-4.0.jar
  5. datanucleus-api-jdo-3.1.3.jar datanucleus-api-jpa-3.1.3.jar
  6. datanucleus-appengine-2.1.2.jar datanucleus-core-3.1.3.jar
  7. jta-1.1.jar

如何解决这个问题。

【问题讨论】:

    标签: java google-app-engine jar


    【解决方案1】:

    最简单的解决方案是使用 Maven 并导入 App Engine Client For Google Cloud Storage。如果 Maven 不是一个选项,这里是 Maven 为我下载的截图:

    【讨论】:

    • 在引用的库下添加了所有这些依赖项,仍然没有运气。请提出建议。
    • 您确定您使用了正确版本的罐子吗?最好的方法确实是使用 Maven,因为它会为您处理所有依赖项。如果你不了解 Maven,网上有很多教程。
    猜你喜欢
    • 1970-01-01
    • 2014-06-08
    • 2023-03-03
    • 2012-06-01
    • 1970-01-01
    • 2018-01-18
    • 2018-05-26
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多