2014-11-11 6 views
3

Я хочу использовать REST Jersey Client для вызова веб-сервисов. Но он не работает при вызове из приложения Android; тот же вызов веб-службы работает при вызове с простого java-клиента (без какого-либо кода Android). Означает ли это, что Джерси-клиент не работает при вызове в контексте Android или для какой-либо конкретной конфигурации для вызова REST?Джерси-клиент поддерживает Android?

Мой pom.xml имеет это:

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-client</artifactId> 
    <version>2.13</version> 
</dependency> 

Мой пример кода:

Response getResponse = ClientBuilder.newClient() 
       .target("http://myserver:8081").path("https://stackoverflow.com/users/employees") 
       .request() 
       .get(); 

Я вижу эти ошибки в журналах андроид эмулятор:

Failed resolving Lorg/glassfish/jersey/internal/OsgiRegistry; interface 2690 'Lorg/osgi/framework/SynchronousBundleListener;' 
Link of class 'Lorg/glassfish/jersey/internal/OsgiRegistry;' failed 
VFY: unable to find class referenced in signature (Lorg/glassfish/jersey/internal/OsgiRegistry;) 
... 
Cannot find default implementation of the HK2 ServiceLocatorGenerator 
java.lang.ClassNotFoundException: Provider of org.glassfish.jersey.internal.RuntimeDelegateImpl could not be instantiated: java.lang.IllegalStateException: No generator was provided and there is no default generator registered. 

комментарий Похожие here: «Android имеет виртуальную машину Dalvik, а не оригинальную JVM. причина, по которой API-интерфейс Jersey Client не работает в ОС Android. ! Но I'am нагель уверен»

+0

Другим указатель:. [Джерси 2.x клиент на Android] (HTTPS : //blogs.oracle.com/japod/entry/jersey_2_x_client_on) ... проблемы все еще существуют –

ответ

0

Это сообщение связано:

When using Jersey for restful api in Android app I get this error:

кажется, что клиент Джерси не поддерживается андроид: Я пытался импортировать рабочую джерси клиента для REST API программы в андроид и получил фатальное исключение

12-16 16:41:33.049 3711-3711/com.program.example E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.program.example, PID: 3711 
java.lang.VerifyError: com/sun/jersey/core/impl/provider/entity/MimeMultipartProvider 
     at java.lang.Class.getDeclaredConstructors(Native Method) 
     at java.lang.Class.getConstructors(Class.java:508) 
     at com.sun.jersey.core.spi.component.ComponentConstructor.getInstance(ComponentConstructor.java:174) 
     at com.sun.jersey.core.spi.component.ProviderFactory.__getComponentProvider(ProviderFactory.java:166) 
     at com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:137) 
     at com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:256) 
     at com.sun.jersey.core.spi.component.ProviderServices.getServices(ProviderServices.java:160) 
     at com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:176) 
     at com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:162) 
     at com.sun.jersey.api.client.Client.init(Client.java:342) 
     at com.sun.jersey.api.client.Client.access$000(Client.java:118) 
     at com.sun.jersey.api.client.Client$1.f(Client.java:191) 
     at com.sun.jersey.api.client.Client$1.f(Client.java:187) 
     at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) 
     at com.sun.jersey.api.client.Client.<init>(Client.java:187) 
     at com.sun.jersey.api.client.Client.<init>(Client.java:159) 
     at com.sun.jersey.api.client.Client.create(Client.java:669) 
     at android.view.View.performClick(View.java) 
     at android.view.View$PerformClick.run(View.java) 
     at android.os.Handler.handleCallback(Handler.java) 
     at android.os.Handler.dispatchMessage(Handler.java) 
     at android.os.Looper.loop(Looper.java) 
     at android.app.ActivityThread.main(ActivityThread.java:5476) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) 
     at dalvik.system.NativeStart.main(Native Method) 

Я хотел бы сделать это комментарием ...

Смежные вопросы