【问题标题】:Error creating JClouds SwiftApi: Provider org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata could not be instantiated创建 JClouds SwiftApi 时出错:无法实例化提供程序 org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata
【发布时间】:2014-09-27 02:16:51
【问题描述】:

我有一些用于连接 JClouds swift 存储容器的代码,该容器在其自己的测试区域中运行良好,但是一旦我集成到我的项目中,就会出现错误:

线程“主”java.util.ServiceConfigurationError 中的异常: org.jclouds.apis.ApiMetadata:提供者 org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata 不能 实例化:java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException

这是在 ContextBuilder 行上失败的代码:

private SwiftApi swiftApi;

public JCloudsConnector(String username, String password, String endpoint) {
      String provider = "openstack-swift";

      Properties overrides = new Properties();
      overrides.setProperty("jclouds.mpu.parallel.degree", "" + Runtime.getRuntime().availableProcessors());

      swiftApi = ContextBuilder.newBuilder(provider)
            .endpoint(endpoint)
            .credentials(username, password)
            .overrides(overrides)
            .buildApi(SwiftApi.class);
}

我使用的是相同的依赖项(JClouds 版本 1.7.3),所以我无法理解问题可能是什么,因为两者都在相同的环境中运行。

【问题讨论】:

  • 类路径中有哪个版本的 Guava?另外,您运行的是哪个版本的 JVM?
  • Guava 在 16.0.1 和 JVM 1.7.051
  • Jclouds 1.7.3 依赖于 Guava 15.0,并且不适用于该 JVM 版本中的更高版本。你能坚持使用 Guava 15.0 吗?
  • 非常感谢!现在问题已经解决了。
  • 不要在你的问题标题中加上SOLVED,或者在问题中回答你的问题。而是发布一个单独的答案,并通过单击答案旁边的复选标记将其标记为已完成。

标签: java jclouds


【解决方案1】:

感谢 Ignasi Barrera,我能够通过在我的 maven POM 文件中添加 Guava 15.0 的条目来对此进行排序:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>15.0</version>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多