首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在osgi中使用jersey-client时出错-没有提供生成器

在osgi中使用jersey-client时出错-没有提供生成器
EN

Stack Overflow用户
提问于 2014-09-09 09:01:58
回答 4查看 20.5K关注 0票数 13

当我试图从泽西客户端创建一个WebTarget时,我会得到以下异常。

我的代码

代码语言:javascript
复制
Client client = ClientBuilder.newClient();
WebTarget baseTarget = client.target("http://127.0.0.1:9000");

异常堆栈跟踪

代码语言:javascript
复制
java.lang.IllegalStateException: No generator was provided
and there is no default generator registered
    at    org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.internalCreate(ServiceLocatorFactoryImpl.java:266)
    at org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.create(ServiceLocatorFactoryImpl.java:247)
    at org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:138)
    at org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:109)
    at org.glassfish.jersey.internal.RuntimeDelegateImpl.<init>(RuntimeDelegateImpl.java:61)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:118)
    at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:225)
    at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:135)
    at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:120)
    at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:95)
    at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
    at org.glassfish.jersey.client.JerseyWebTarget.<init>(JerseyWebTarget.java:71)
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:185)
    at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:70)

有什么问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-25 10:12:33

将泽西-ext目录中的下列档案添加到类路径中:

HK2-api-*..jar

HK2-定位器-*..jar

HK2-功用-*..jar

javax-inject-*..jar

泽西岛-番石榴-*

票数 26
EN

Stack Overflow用户

发布于 2014-10-10 16:36:07

在您的OSGi框架上注册HK2-定位器和javassist作为包。

泽西岛使用HK2定位器在OSGi上查找服务。

票数 6
EN

Stack Overflow用户

发布于 2015-12-07 00:58:16

我也遇到了同样的问题,我最终可以通过启动包来解决这个问题,这个包使用泽西在Felix框架(OSGi-5.4)中发布一个2级的端点。我不知道原因,但似乎是HK2-定位器依赖关系:

  • hk2-api-2.4.0-b10.jar -> 1级
  • HK2-定位器-2.4.0-b10.jar -> 1级
  • hk2-utils-2.4.0-b10.jar -> 1级
  • org.apache.servicemix.bundles.javax-inject-1_2.jar -> 1级
  • 泽西岛-番石榴-2.22.1.jar -> 1级

需要在使用它们的捆绑包之前先开始:

  • your 1.0.0.jar -> 2级

一旦您将包设置为在这个新级别上启动,然后确保在Felix控制台中执行frameworklevel 2以启动该级别下的包。重新启动框架,它就能工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25740556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档