0

我在这里发布了一个问题,现在我遇到了一个新问题。
我已将 IP 地址更新为10.0.2.2:8080....,其余一切都相同(Gradle 依赖项等)。
请求不会发送到 Web 服务,并且 Jersey 会发出某种警告。
这是堆栈跟踪:

W /错误:已检测到以下警告:警告:[org.glassfish.jersey.message.internal.DataSourceProvider]的HK2服务具体化失败,异常:MultiException stack 1 of 4 java.lang.RuntimeException:java.util。 concurrent.ExecutionException: java.lang.NoClassDefFoundError: javax.activation.DataSource at org.glassfish.hk2.utilities.cache.LRUHybridCache.compute(LRUHybridCache.java:315) at 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) at org.jvnet.hk2.internal.Utilities.getInitMethods(Utilities.java:218) at 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) at org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1373) at org.jvnet.hk2.internal.ServiceLocatorImpl$9.compute(ServiceLocatorImpl.java:1368) at org.glassfish.hk2.utilities .cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:116) at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1430) at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java :1355) 在 org.glassfish.jersey.internal.inject.Providers.getServiceHandles(Providers.java:354) 在 org.glassfish.jersey 的 org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1344)。 internal.inject.Providers。getCustomProviders(Providers.java:201) at org.glassfish.jersey.message.internal.MessageBodyFactory.(MessageBodyFactory.java:221) at java.lang.reflect.Constructor.newInstance(Native Method) at 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 ) at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487) at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83) at org.jvnet.hk2.internal.SingletonContext $1.compute(SingletonContext.java:71) 在 org.glassfish.hk2.utilities.cache。Cache$OriginThreadAwareFuture$1.call(Cache.java:97) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java :154) 在 org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:122) 在 org.jvnet.hk2 的 org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)。 internal.Utilities.createService(Utilities.java:2022) at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:774) at org.jvnet.hk2.internal.ServiceLocatorImpl.getUnqualifiedService(ServiceLocatorImpl.java:786)在 org.glassfish.jersey 的 org.jvnet.hk2.internal.IterableProviderImpl.get(IterableProviderImpl.java:111)。client.RequestProcessingInitializationStage.apply(RequestProcessingInitializationStage.java:97) at org.glassfish.jersey.client.RequestProcessingInitializationStage.apply(RequestProcessingInitializationStage.java:67) at org.glassfish.jersey.process.internal.Stages$LinkedStage.apply(Stages. java:308) 在 org.glassfish.jersey.process.internal.Stages.process(Stages.java:171) 在 org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:25308) 在 org.glassfish.jersey.process.internal.Stages.process(Stages.java:171) 在 org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:25308) 在 org.glassfish.jersey.process.internal.Stages.process(Stages.java:171) 在 org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:25

编辑:
我关注了一个博客并实现了他们的方式,我的警告消失了,但我的客户端仍然没有与服务器通信。另外,这对我的情况有何影响:

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

Jersey客户端在 Android 上运行良好吗?如果有,是否可以提供合适的学习材料?

Edit2
我遵循了这个解决方案,因此永远放弃Jersey了。JerseyAndroid 似乎有一些错误(我只是在猜测。我无法确定)。

4

1 回答 1

0

尝试显式添加依赖项:

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

来源:GitHub问题

于 2018-02-06T11:55:18.967 回答