Клиент Android-Джерси не отправляет запрос в веб-службу

Я отправил вопрос здесь и теперь у меня новая проблема.
Я обновил IP-адрес до 10.0.2.2:8080...., в остальном все то же самое (зависимости Gradle и т.д.).
Запрос не отправляется в веб-сервис и Джерси выдает какое-то предупреждение.
Это трассировка стека:

Изменить:
Я подписался на blog и реализовали по-своему, мое предупреждение исчезло, но мой клиент по-прежнему не связывается с сервером. Кроме того, как это влияет на мою ситуацию:

Хорошо ли работает клиент Jersey с Android? Если да, то можно ли предоставить соответствующие учебные материалы?

I/art: Rejecting re-init on previously-failed class java.lang.Class<org.glassfish.jersey.internal.OsgiRegistry> 

Edit2
Я последовал этому решению и тем самым навсегда отказался от Jersey. У Jersey, кажется, есть некоторые ошибки с Android (я просто предположил, я не могу точно подтвердить).

Попробуйте явно добавить зависимость:


person Shankha057    schedule 06.02.2018    source источник
comment
@medbenjemaa Пробовал чистить и восстанавливать. Не работает. Я хочу использовать этот Джерси (я мог бы использовать HTTP-клиент Apache, но не стал). Мой веб-сервис также использует Jersey.   -  person Mohamed chiheb Ben jemaa    schedule 06.02.2018
comment
вам не обязательно использовать клиент Джерси, в Android рекомендуется так много библиотек и фреймворков,   -  person Shankha057    schedule 06.02.2018
comment
Предпочтительно использовать Джерси поверх проекта неполного рабочего дня какого-нибудь студента колледжа. Я знаю, что у Джерси будет постоянная поддержка. Как насчет другого? Будет ли этот человек поддерживать библиотеку время от времени?   -  person Mohamed chiheb Ben jemaa    schedule 06.02.2018
comment
конечно, вы можете присоединиться к проблемам на GitHub, и вы можете в любое время отправить свою собственную проблему   -  person Shankha057    schedule 06.02.2018
comment
Но так ли он надежен, как корпоративный API, такой как Jersey или Apache Http Client?   -  person Mohamed chiheb Ben jemaa    schedule 06.02.2018
comment
Я не хочу иметь дело с _1_, так как обработка запроса занимает некоторое время, а код ответа получается примерно через 3-4 секунды, что для меня важно. Я понимаю вашу точку зрения. Но когда я использую _2_, приложение просто останавливается и ничего не делает с этим _3_ в консоли.   -  person Shankha057    schedule 06.02.2018


Ответы (1)


Источник: ошибка GitHub

                <dependencies>
                    <dependency>
                        <groupId>javax.activation</groupId>
                        <artifactId>activation</artifactId>
                        <version>1.1.1</version>
                    </dependency>
                </dependencies>

очистите и перестройте проект и проверьте разрешение Интернета в манифесте, это общие шаги. \n но я рекомендую вам использовать эту библиотеку для получения данных REST, HTTP, JSON github.com/ amitshekhariitbhu/Fast-Android-Networking это очень просто

person Benoit    schedule 06.02.2018
comment
Если пользователь изменит ориентацию экрана или закроет приложение во время отправки запроса, AsyncTask создаст проблемы. - person Shankha057; 06.02.2018
comment
Именно поэтому я использую _1_ в соответствии с рекомендациями инструкторов курса разработки Android в Udacity. - person Shankha057; 06.02.2018
comment
@ShankhadeepGhoshal, вы правы, мой ответ является частичным и объясняет только исключение NetworkOnMainThreadException - person Shankha057; 06.02.2018
comment
Что ж, _1_ позаботится о дополнительных потоках. AsyncTask — это своего рода реализация _2_, которая является реализацией _3_, которая, в свою очередь, является типом `ExecutorService. Итак, мои потребности в потоковой передаче удовлетворены. Подозреваю, что у меня проблемы с зависимостью Джерси. - person Benoit; 06.02.2018
comment
Посмотрите на обновленный ответ, похоже, это проблема, связанная с Java 9. - person Shankha057; 06.02.2018
comment
Я использую джаву 8 - person Benoit; 06.02.2018
comment
И после того, как вы добавите _1_ зависимость, они теперь будут запрашивать у вас _2_ - person Shankha057; 06.02.2018
comment
W/Errors: Обнаружены следующие предупреждения: ПРЕДУПРЕЖДЕНИЕ: Ошибка повторения службы HK2 для [org.glassfish.jersey.message.internal.DataSourceProvider] с исключением: MultiException stack 1 of 4 java.lang.RuntimeException: java.util. concurrent.ExecutionException: java.lang.NoClassDefFoundError: javax.activation.DataSource в org.glassfish.hk2.utilities.cache.LRUHybridCache.compute(LRUHybridCache.java:315) в org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperImpl .getAllMethods(ClassReflectionHelperImpl.java:108) на org.jvnet.hk2.internal.Utilities.findInitializerMethods(Utilities.java:1341) на org.jvnet.hk2.internal.DefaultClassAnalyzer.getInitializerMethods(DefaultClassAnalyzer.java:107) на org. Glassfish.jersey.internal.inject.JerseyClassAnalyzer.getInitializerMethods(JerseyClassAnalyzer.java:242) на org.jvnet.hk2.internal.Utilities. getInitMethods(Utilities.java:218) на org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:145) на org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:180) на org.jvnet .hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:740) в org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:694) в org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java :461) в org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2288) в org.jvnet.hk2.internal.ServiceLocatorImpl.access$1200(ServiceLocatorImpl.java:125) в org.jvnet.hk2.internal .ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1373) в org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1368) в org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute( WeakCARCacheImpl.java:116) по адресу org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1430) по адресу org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1355) по адресу org.jvnet.hk2 .internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1344) в org.glassfish.jersey.internal.inject.Providers.getServiceHandles(Providers.java:354) в org.glassfish.jersey.internal.inject. Providers.getCustomProviders(Providers.java:201) в org.glassfish.jersey.message.internal.MessageBodyFactory.(MessageBodyFactory.java:221) в java.lang.reflect.Constructor.newInstance(собственный метод) в org.glassfish.hk2 .utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1375) на org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:272) на org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java :366) в org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487) в org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83) в org.jvnet.hk2.internal .SingletonContext$1.compute(SingletonContext.java:71) в org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97) в java.util.concurrent.FutureTask.run(FutureTask.java :237) в орг. Glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154) в org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199) в org.jvnet.hk2.internal. SingletonContext.findOrCreate(SingletonContext.java:122) в org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2022) в org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:774) в org. .jvnet.hk2.internal.ServiceLocatorImpl.getUnqualifiedService(ServiceLocatorImpl.java:786) в org.jvnet.hk2.internal.IterableProviderImpl.get(IterableProviderImpl.java:111) в org.glassfish.jersey.client.RequestProcessingInitializationStage.apply(RequestProcessingInitializationStage .java:97) в org.glassfish.jersey.client.RequestProcessingInitializationStage.apply(RequestProcessingInitializationStage.java:67) в org.glassfish.jersey.process.internal.Sta ges$LinkedStage.apply(Stages.java:308) в org.glassfish.jersey.process.internal.Stages.process(Stages.java:171) в org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java: 25 - person Shankha057; 06.02.2018