![](/img/trans.png)
[英]ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl cannot be found in OSGi bundle which has embedded cxf dependencies
[英]How to resolve jersey.internal.RuntimeDelegateImpl with Jersey on OSGi
我在OSGi环境中使用Jersey。 我将所有Jetty和Jersey jar包装在一个包含我自己的服务器/ servlet /资源抽象的包中。 这运行得很好。 我通过OSGi包导入导入javax.ws.rs-api,因为相关的包也被其他包中的JAX-RS资源实现使用。
但是,我的实现有时不能使用“java.lang.ClassNotFoundException:javax.ws.rs-api_2.1.0无法找到org.glassfish.jersey.internal.RuntimeDelegateImpl”。
看来这可能是一场竞争。 也许Jersey有时会使用我的内部包中的类,有时也会使用导入的javax中的类。 我无法弄清楚问题是什么。
问题类似于[1],但在我的情况下,它不是任何导入或依赖。 我将Jetty和Jersey Jars包装在一个OSGi包中。
[1] org.glassfish.jersey.internal.RuntimeDelegateImpl NOT FOUND
出现此问题的原因是JAX-RS API使用许多静态方法来从JAX-RS提供程序获取实现类型。 在这种情况下,错误不是来自Jersey,而是来自JAX-RS API本身,当它试图找到各种JAX-RS接口的实现时。
您实际上有四种选择:
我希望这一切都有意义,解释为什么你会看到错误,并希望为你提供一些解决问题的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.