Web applications 如何将webapp部署到ApacheFelix中?
我需要安装哪些捆绑包?至少,这必须是一个servlet容器/web服务器,比如Jetty,但是基本的Web applications 如何将webapp部署到ApacheFelix中?,web-applications,maven-2,jetty,osgi,apache-felix,Web Applications,Maven 2,Jetty,Osgi,Apache Felix,我需要安装哪些捆绑包?至少,这必须是一个servlet容器/web服务器,比如Jetty,但是基本的org.apache.felix.http.Jetty捆绑包可以吗,或者在其他捆绑包中发现web.xml还需要什么 我是否将webapp置于标准WAR中,添加OSGi头并完成了?或者OSGi环境是否需要任何特定于webapp的头文件 还需要进行哪些其他配置 使用Maven自动化这些步骤的选项有哪些 我已经尝试部署了org.apache.felix.http.jetty捆绑包,我在localhost
org.apache.felix.http.Jetty
捆绑包可以吗,或者在其他捆绑包中发现web.xml
还需要什么
我是否将webapp置于标准WAR中,添加OSGi头并完成了?或者OSGi环境是否需要任何特定于webapp的头文件
还需要进行哪些其他配置
使用Maven自动化这些步骤的选项有哪些
我已经尝试部署了
org.apache.felix.http.jetty
捆绑包,我在localhost:8080上得到了一个用404应答的jetty。接下来,我尝试了一个简单的webapp,它只有一个配置为欢迎文件的静态HTML文件。据我所知,Jetty甚至没有注意到部署描述符,至少将测试webapp部署到Felix中不会改变任何事情。Jetty和webapp本身是不够的,必须有一些胶水在特定上下文下在web服务器上实际注册webapp
一个有效的例子:
- 使用
org.ops4j.Pax.web.paxweb服务
捆绑包中的PaxWeb服务作为HTTP服务,它也运行Jetty
- 将
Webapp上下文
标题添加到包清单中
- 当您的包注册时,使用PaxWebExtender查找该头,然后将其连接到http服务
出于某种原因,它必须是PaxWebService,如果我用org.apache.felix中的基本jetty包替换它,它将无法正确解析URL
我离真正理解这里发生的事情还有很长的路要走,但至少我让它起作用了。如果你让你的webapp包在其bundle activator中执行连接,我想你可以不用Pax包和bundle头。你不必使用Pax-Web,但它确实让事情变得容易多了。如果没有PaxWeb,您将需要一个实现OSGiHTTP服务的捆绑包(有一个Jetty捆绑包),然后获取对HttpService的服务引用。你可以用这个注册你的webapp,但它很乏味。如果你想看到血淋淋的细节,可以看看PaxWeb代码。Pax Web没有向HttpService添加任何内容,只是处理了所有注册难题。也许可以通过声明性服务注入注册(如果不是,当然应该是这样)。