Java 创建JClouds SwiftApi时出错:无法实例化提供程序org.JClouds.openstack.keystone.v2_0.KeystoneApiMetadata
我有一些连接到JClouds swift存储容器的代码,该容器在其自己的测试区域中运行良好,但一旦我集成到我的项目中,我会遇到一个错误: 线程“main”java.util.ServiceConfigurationError中出现异常: org.jclouds.api.ApiMetadata:提供程序 无法创建org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata 实例化:java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException 这是在ContextBuilder行失败的代码:Java 创建JClouds SwiftApi时出错:无法实例化提供程序org.JClouds.openstack.keystone.v2_0.KeystoneApiMetadata,java,jclouds,Java,Jclouds,我有一些连接到JClouds swift存储容器的代码,该容器在其自己的测试区域中运行良好,但一旦我集成到我的项目中,我会遇到一个错误: 线程“main”java.util.ServiceConfigurationError中出现异常: org.jclouds.api.ApiMetadata:提供程序 无法创建org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata 实例化:java.lang.IllegalStateException: j
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版),因此我无法理解问题可能是什么,因为两者都在同一个环境中运行。多亏了Ignasi Barera,我能够通过在maven POM文件中添加Guava 15.0的条目来对其进行排序:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>15.0</version>
</dependency>
番石榴
番石榴
15
类路径中有哪个版本的番石榴?另外,您正在运行哪个版本的JVM?Guava版本为16.0.1,JVM 1.7.051Jclouds 1.7.3依赖于Guava 15.0,在该版本的JVM中无法使用更高版本。你能坚持吃番石榴15.0吗?非常感谢!现在问题已经解决了。不要将已解决的问题放在问题的标题中,也不要在问题中回答问题。相反,发布一个单独的答案,并通过单击答案旁边的复选标记来标记它已完成。