I use 1.9.2 version of jclouds as in the example.
Here is my gradle dependencies:

compile group: 'org.apache.jclouds.driver', name: 'jclouds-slf4j',
version: '1.9.2'
compile group: 'org.apache.jclouds.driver', name: 'jclouds-sshj',
version: '1.9.2'
compile group: 'org.apache.jclouds.api', name: 'openstack-swift',
version: '1.9.2'
compile group: 'org.apache.jclouds.labs', name: 'openstack-marconi',
version: '1.9.2'


I don't use gson. But I use spring-boot framework. It may use gson. I am
not sure. But I don't see it in External Libraries.

Also I tried to use:
SwiftApi swiftApi = ContextBuilder.newBuilder("openstack-swift")
                .endpoint("http://192.168.0.58:8080/auth/v1.0";)
                .credentials("admin:admin", "admin")
                .buildApi(SwiftApi.class);

It shows the same error.

My OpenStack Swift works if I use curl:

//authenticate
curl -v -H 'X-Auth-User: admin:admin' -H 'X-Auth-Key: admin'
http://192.168.0.58:8080/auth/v1.0/

//check containers
curl -v -H 'X-Storage-Token: AUTH_tk1411104de43046aca9b371c27c3b1fad'
http://192.168.0.58:8080/v1/AUTH_admin/

//create a container
curl -v -H 'X-Storage-Token: AUTH_tk1411104de43046aca9b371c27c3b1fad' -X
PUT http://192.168.0.58:8080/v1/AUTH_admin/mycontainer

//upload file
swift -A http://192.168.0.58:8080/auth/v1.0/ -U admin:admin -K admin upload
mycontainer some_file

//get file
curl -v -H 'X-Auth-Token: AUTH_tk1411104de43046aca9b371c27c3b1fad' -X GET
http://192.168.0.58:8080/v1/AUTH_admin/mycontainer/some_file

Sincerely,
Alexandr


On Wed, Sep 14, 2016 at 8:56 PM, Ignasi Barrera <n...@apache.org> wrote:

> Which version of jclouds are you using? Are you using Gson too in your
> project? In that case, which version of Gson are you using?
>
> On 14 September 2016 at 19:45, Alexandr Porunov
> <alexandr.poru...@gmail.com> wrote:
> > Hello,
> >
> > How to use jclouds with OpenStack Swift?
> >
> > Here is my code:
> > SwiftApi swiftApi = ContextBuilder.newBuilder("openstack-swift")
> >                 .endpoint("http://192.168.0.58:8080/v1/";)
> >                 .credentials("admin:admin", "admin")
> >                 .buildApi(SwiftApi.class);
> >
> > I use tempauth in OpenStack Swift. Here is my configs:
> > [filter:tempauth]
> > use = egg:swift#tempauth
> > user_admin_admin = admin .admin .reseller_admin
> > user_test_tester = testing .admin
> > user_test2_tester2 = testing2 .admin
> > user_test_tester3 = testing3
> >
> > I can not create swiftApi because I always get next error:
> > Exception in thread "main" java.lang.reflect.InvocationTargetException
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> > sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
> >         at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
> >         at java.lang.reflect.Method.invoke(Method.java:497)
> >         at
> > org.springframework.boot.loader.MainMethodRunner.run(
> MainMethodRunner.java:48)
> >         at org.springframework.boot.loader.Launcher.launch(
> Launcher.java:87)
> >         at org.springframework.boot.loader.Launcher.launch(
> Launcher.java:50)
> >         at
> > org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58)
> > Caused by: java.lang.NoSuchMethodError:
> > com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.<
> init>(Lcom/google/gson/internal/ConstructorConstructor;Lcom/google/gson/
> FieldNamingStrategy;Lcom/google/gson/internal/Excluder;)V
> >         at
> > org.jclouds.json.internal.DeserializationConstructorAndR
> eflectiveTypeAdapterFactory.<init>(DeserializationConstructorAndR
> eflectiveTypeAdapterFactory.java:116)
> >         at
> > org.jclouds.json.config.GsonModule.provideGson(GsonModule.java:129)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at
> > sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
> >         at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
> >         at java.lang.reflect.Method.invoke(Method.java:497)
> >         at
> > com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> >         at
> > com.google.inject.internal.InternalFactoryToProviderAdapter.get(
> InternalFactoryToProviderAdapter.java:40)
> >         at
> > com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(
> ProviderToInternalFactoryAdapter.java:46)
> >         at
> > com.google.inject.internal.InjectorImpl.callInContext(
> InjectorImpl.java:1031)
> >         at
> > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(
> ProviderToInternalFactoryAdapter.java:40)
> >         at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> >         at
> > com.google.inject.internal.InternalFactoryToProviderAdapter.get(
> InternalFactoryToProviderAdapter.java:40)
> >         at
> > com.google.inject.internal.SingleParameterInjector.inject(
> SingleParameterInjector.java:38)
> >         at
> > com.google.inject.internal.SingleParameterInjector.getAll(
> SingleParameterInjector.java:62)
> >         at
> > com.google.inject.internal.ConstructorInjector.construct(
> ConstructorInjector.java:84)
> >         at
> > com.google.inject.internal.ConstructorBindingImpl$Factory.get(
> ConstructorBindingImpl.java:254)
> >         at
> > com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(
> ProviderToInternalFactoryAdapter.java:46)
> >         at
> > com.google.inject.internal.InjectorImpl.callInContext(
> InjectorImpl.java:1031)
> >         at
> > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(
> ProviderToInternalFactoryAdapter.java:40)
> >         at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> >         at
> > com.google.inject.internal.InternalFactoryToProviderAdapter.get(
> InternalFactoryToProviderAdapter.java:40)
> >         at com.google.inject.internal.FactoryProxy.get(FactoryProxy.
> java:54)
> >         at
> > com.google.inject.internal.InternalInjectorCreator$1.
> call(InternalInjectorCreator.java:204)
> >         at
> > com.google.inject.internal.InternalInjectorCreator$1.
> call(InternalInjectorCreator.java:198)
> >         at
> > com.google.inject.internal.InjectorImpl.callInContext(
> InjectorImpl.java:1024)
> >         at
> > com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(
> InternalInjectorCreator.java:198)
> >         at
> > com.google.inject.internal.InternalInjectorCreator.injectDynamically(
> InternalInjectorCreator.java:179)
> >         at
> > com.google.inject.internal.InternalInjectorCreator.build(
> InternalInjectorCreator.java:109)
> >         at com.google.inject.Guice.createInjector(Guice.java:95)
> >         at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.
> java:402)
> >         at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.
> java:326)
> >         at org.jclouds.ContextBuilder.buildApi(ContextBuilder.java:644)
> >         at org.jclouds.ContextBuilder.buildApi(ContextBuilder.java:636)
> >         at com.fyfine.loader.Application.main(Application.java:26)
> >         ... 8 more
> >
> > Please, help me connect to OpenStack Swift
> >
> > Sincerely,
> > Alexandr
>

Reply via email to