HttpClient maven依赖性问题;缺少要求[175.0]osgi.wiring.package;(osgi.willing.package=org.apache.http)";
我正在尝试将HttpClient maven依赖性问题;缺少要求[175.0]osgi.wiring.package;(osgi.willing.package=org.apache.http)";,maven,osgi,apache-httpclient-4.x,osgi-bundle,onos,Maven,Osgi,Apache Httpclient 4.x,Osgi Bundle,Onos,我正在尝试将httpclient添加到我的maven项目中,但我没有做到这一点 我已经添加了httpcore,commons编解码器和commons日志,但它不起作用 这就是我得到的错误: 这是我的POM文件: <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.scr.annotations</a
httpclient
添加到我的maven项目中,但我没有做到这一点
我已经添加了httpcore
,commons编解码器
和commons日志
,但它不起作用
这就是我得到的错误:
这是我的POM文件:
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
<version>1.9.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Import-Package>*, !javax.json</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
org.apache.felix
org.apache.felix.scr.annotations
1.9.8
假如
玻璃鱼
javax.json
1.0.4
公用记录
公用记录
1.1.1
通用编解码器
通用编解码器
1.9
org.apache.httpcomponents
httpclient
4.5
org.apache.httpcomponents
httpcore
4.4.1
org.apache.felix
maven捆绑插件
真的
${project.artifactId}
*, !javax.json
我远不是一个专业的专家,所以问题可能很简单,但是我尝试了很多事情都没有成功。如果有人有想法,我正在听。您正在部署一个OSGi捆绑包,它需要来自其他捆绑包的包(
org.apache.http
)。但是这些org.apache.httpcomponents
依赖项可能只是普通的JAR,而不是OSGi包。只需尝试使用org.apache.httpcomponents:httpclient-osgi
而不是普通的httpclient
即可。根据它的打包方式,还可以删除其他org.apache.httpcomponents
deps。我尝试使用org.apache.httpcomponents:httpclient-osgi,包括org.apache.httpcomponents:httpcore-osgi和不包括org.apache.httpcomponents:httpcore-osgi。我还尝试使用这两个组件并添加org.apache.httpcomponents:httpclient缓存。所有这些都不起作用,我仍然有相同的错误,您在哪个容器中部署捆绑包?经过一些挖掘,我发现:“您需要[HttpClient OSGI和]HttpCore OSGI捆绑包,以及导出Commons日志API的捆绑包,以满足HttpClient OSGI捆绑包的必要依赖性。”但是我不知道如何包含一个导出commons日志的包,因为您正在部署一个OSGi包,它需要来自其他包的包(org.apache.http
)。但是这些org.apache.httpcomponents
依赖项可能只是普通的JAR,而不是OSGi包。只需尝试使用org.apache.httpcomponents:httpclient-osgi
而不是普通的httpclient
即可。根据它的打包方式,还可以删除其他org.apache.httpcomponents
deps。我尝试使用org.apache.httpcomponents:httpclient-osgi,包括org.apache.httpcomponents:httpcore-osgi和不包括org.apache.httpcomponents:httpcore-osgi。我还尝试使用这两个组件并添加org.apache.httpcomponents:httpclient缓存。所有这些都不起作用,我仍然有相同的错误,您在哪个容器中部署捆绑包?经过一些挖掘,我发现:“您需要[HttpClient OSGI和]HttpCore OSGI捆绑包,以及导出Commons日志API的捆绑包,以满足HttpClient OSGI捆绑包的必要依赖性。”但我不知道如何包含导出commons日志API的捆绑包
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
<version>1.9.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Import-Package>*, !javax.json</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>