2

我正在尝试让 org.apache.felix.http.jetty 捆绑包为我的 OSGi 环境提供 HTTP 服务。

我还部署了 servlet-api 包,它导出版本化包,但不提供 JavaServlet 功能(可能应该,基于参考合同上的OSGi 联盟页面)。

这是 servlet-api 包的清单的一部分

Export-Package: javax.servlet;uses:="javax.servlet.descriptor,javax.se
 rvlet.annotation";version="3.1.0",javax.servlet.descriptor;version="3
 .1.0",javax.servlet.annotation;uses:="javax.servlet";version="3.1.0",
 javax.servlet.http;uses:="javax.servlet";version="3.1.0"
Implementation-Version: 3.1.0
Specification-Vendor: Oracle Corporation
Bundle-Name: Java Servlet API
Bundle-Vendor: GlassFish Community
Import-Package: javax.servlet;version="3.1.0",javax.servlet.annotation
 ;version="3.1.0",javax.servlet.descriptor;version="3.1.0",javax.servl
 et.http;version="3.1.0"

Provide-Capability根本没有指定标题。

所以,当我启动 OSGi 容器时,它会报错:

 Unresolved requirements: [[org.apache.felix.http.jetty [28](R 28.0)]
  osgi.contract; (&(osgi.contract=JavaServlet)(version=3.1))]

任何人都知道如何解决这个问题?

4

1 回答 1

7

您应该使用org.apache.felix.http.servlet-apiFelix 本身的 bundle。

于 2017-03-13T20:06:48.263 回答