0

我正在尝试在 Karaf 中设置一个特定的码头 SSL 上下文工厂(实际上是 Fabric8 (www.fabric8.io))。

我直接在 jetty.xml 文件中执行此操作: <New id="sslContextFactory" class="fr.maatg.pandora.sl.jetty.GridSslContextFactory"> ... </New>

当我启动容器时,Pax Web 会生成一个异常(完整异常https://gist.github.com/jrevillard/adb8e0bc0b1e9b568a67):

Caused by: java.lang.ClassNotFoundException: fr.maatg.pandora.sl.jetty.GridSslContextFactory not found by org.ops4j.pax.web.pax-web-jetty [100] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_51] at org.eclipse.jetty.util.Loader.loadClass(Loader.java:100) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:366) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:767) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:404) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:334) at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:281) ... 16 more

有人可以告诉我如何使用我的特定工厂吗?

杰罗姆

4

1 回答 1

0

由于 pax-web-jetty 包不支持动态导入“第三方”包,您需要创建一个包含此类的额外片段包并将其附加到 pax-web-jetty 包。可以在pax web samples中找到有关如何将其添加到 pax-web-jetty 的工作示例

简而言之,片段捆绑清单需要包含片段主机。使用 felix-bundle-plugin 它需要如下所示:

<Fragment-Host>org.ops4j.pax.web.pax-web-jetty</Fragment-Host>
于 2014-02-18T09:40:17.510 回答