我写了一个使用org.apache.http.client.methods.HttpPost的Liferay 7模块。
所以我下载了httpclient-osgi JAR并将其放入deploy/
,但当我尝试启动时,我得到了:
org.osgi.framework.BundleException: Could not resolve module: org.apache.httpcomponents.httpclient [1088]
Unresolved requirement: Import-Package: org.apache.http; version="[4.4.0,4.5.0)"
所以我在mvnrepository.com上搜索了org.apache.http
问题:似乎不存在这样的组件。
我除了including the classes inside my Liferay module之外别无其他选择吗? 这样做听起来与OSGi原则相反:如果我的100个Liferay模块使用httpclient,那么在每个模块中包含httpclient听起来都不是很模块化。
我的想法是错误的吗? 如何在Liferay中以模块化方式使用第三方组件?
答案 0 :(得分:2)
您要搜索的是包名称而不是jar名称。 Apache httpclient需要httpcore。
众所周知,这些捆绑包可以很好地协同工作:
mvn:org.apache.httpcomponents/httpclient-osgi/4.5.3
mvn:org.apache.httpcomponents/httpcore-osgi/4.4.6
https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient-osgi/4.5.3
https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore-osgi/4.4.6