创建JClouds SwiftApi时出错:无法实例化提供程序org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata

时间:2014-08-04 14:52:37

标签: java jclouds

我有一些代码用于连接到JClouds swift存储容器,该容器在自己的测试区域中工作正常,但是一旦我集成到我的项目中,我就会收到错误:

  

线程中的异常" main" java.util.ServiceConfigurationError:   org.jclouds.apis.ApiMetadata:Provider   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),因此我无法理解问题可能是什么,因为两者都在同一环境中运行。

1 个答案:

答案 0 :(得分:4)

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

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