Servlet-API 包不提供 JavaServlet 功能 - felix.http.jetty 不能 运行
Servlet-API bundle not providing JavaServlet capability - felix.http.jetty cannot run
我正在尝试让 org.apache.felix.http.jetty 捆绑包工作,以便为我的 OSGi 环境提供 HTTP 服务。
我还部署了 servlet-api 包,它导出版本控制包,但不提供 JavaServlet 功能(根据参考合同上的 OSGi Alliance 页面,它可能应该提供)。
这是 servlet-api 包
的 MANIFEST 的一部分
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
header。
因此,当我启动 OSGi 容器时,它会报错:
Unresolved requirements: [[org.apache.felix.http.jetty [28](R 28.0)]
osgi.contract; (&(osgi.contract=JavaServlet)(version=3.1))]
有人知道如何解决这个问题吗?
您应该使用 Felix 本身的 org.apache.felix.http.servlet-api
捆绑包。
我正在尝试让 org.apache.felix.http.jetty 捆绑包工作,以便为我的 OSGi 环境提供 HTTP 服务。
我还部署了 servlet-api 包,它导出版本控制包,但不提供 JavaServlet 功能(根据参考合同上的 OSGi Alliance 页面,它可能应该提供)。
这是 servlet-api 包
的 MANIFEST 的一部分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
header。
因此,当我启动 OSGi 容器时,它会报错:
Unresolved requirements: [[org.apache.felix.http.jetty [28](R 28.0)]
osgi.contract; (&(osgi.contract=JavaServlet)(version=3.1))]
有人知道如何解决这个问题吗?
您应该使用 Felix 本身的 org.apache.felix.http.servlet-api
捆绑包。