我是Web java编程的新手。我想创建一个简单的JSF模块化应用程序。我找到了一个简单的教程link
但遗憾的是我仍然有一些关于如何使用OSGI的问题:
此致
答案 0 :(得分:4)
不是专门针对JSF(this可能是)的答案,但对于OSGi网络应用程序,如果您使用的是Pax-Web,请查看maven。
开始使用Pax-Web的最简单方法可能是使用Karaf,然后运行命令features:install war
一旦部署了WAR(或WAB - Web App Bundle),您就可以使用 Servlet初始化中的 osgi-bundlecontext 属性,例如:
extends HttpServlet {
BundleContext bundleContext;
@Override
public void init() throws ServletException
{
bundleContext = (BundleContext) getServletContext().getAttribute("osgi-bundlecontext");
}
使用此功能,您可以在OSGi注册表中查找服务。
你需要注意捆绑的MANIFEST.MF条目,特别是两个:
Bundle-ClassPath: ./,WEB-INF/classes
Webapp-Context: context-root-name-here
或者在符合OSGi标准的WebApp容器中,您需要添加:
Web-ContextPath: context-root-name-here
specifications中有更多信息,请参阅v4.2
的企业或纲要PDF编辑:对于在JBoss中部署,您很可能希望使用WAB支持,请参阅企业4.2规范的第128节。这也可能有所帮助:http://community.jboss.org/message/619443 有趣的是,JBoss AS7正在使用pax-web,所以这方面的文档也应该适用。