如何从jar创建osgi包

时间:2016-08-03 16:30:21

标签: osgi-bundle apache-httpcomponents karaf

我正在使用MultipartbodyBuilder从REST Web服务客户端发送文件和元数据。使用

在我的pom文件中,我添加了

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.3.2</version>
</dependency>

以及

<Embed-Dependency>
  http-mime
</Embed-Dependency>

我还没有在应用程序feature.xml

中添加任何与mime相关的包

当我尝试在karaf上安装该功能时,我在日志文件中收到以下错误,它进入等待

->net.sf.cglib.core.CodeGenerationException: java.lang.StackOverflowError-->null
2016-08-03 20:10:22,456[SpringOsgiExtenderThread-58]|ERROR|org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean|175-org.apache.cxf.cxf-rt-frontend-jaxrs-2.7.3|net.sf.cglib.core.CodeGenerationException : java.lang.RuntimeException-->net.sf.cglib.core.CodeGenerationException: java.lang.StackOverflowError-->null

我正在使用karaf osgi所以我想我需要将一个osgi包映射到features.xml http mime是一个没有任何包的jar。有一个httpclient osgi包但它有其他依赖项,它会破坏我在功能xml中映射的其他项目。

我想知道如何使用httpmime 4.3.2 jar文件创建osgi包。我是新手,所以如果一些指导和参考会有所帮助。

1 个答案:

答案 0 :(得分:0)

有一个名为wrap的karaf功能。这允许您也使用非OSGI jar文件。在feature.xml中,您只需要在功能中添加以下bundle即可。

<bundle>wrap:mvn:org.apache.httpcomponents/httpmime/4.3.2</bundle>