我是新的Web java编程。我想创建一个简单的JSF模块化应用程序。我发现了一个简单的教程link如何用OSGI模块创建一个简单的WAR文件
但不幸的是我还有一些问题如何使用OSGI:
- 我可以建立在它的一些JSF页面简单OGI束和地点?如果不是通常的web应用程序开发。
- 你可以给我链接与示例如何我可以调用函数并将形式的WAR文件传递给OSGI模块。
问候
我是新的Web java编程。我想创建一个简单的JSF模块化应用程序。我发现了一个简单的教程link如何用OSGI模块创建一个简单的WAR文件
但不幸的是我还有一些问题如何使用OSGI:
问候
不为JSF的答案明确(this可能),但对于一般的OSGi Web的应用程序,如果你正在使用maven看看Pax-Web。
上手Pax-Web最简单的方法可能是使用Karaf,然后运行命令features:install war
一旦WAR(或WAB - Web应用程序包)部署,你就可以使用 OSGi的BundleContext的在Servlet的初始化属性,如:
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兼容的Web应用程序容器,您需要添加:
Web-ContextPath: context-root-name-here
有一个在specifications更多信息,请参阅企业或PDF文件汇编为v4.2
编辑:对于在JBoss中进行部署,您最可能要使用WAB支持,请参阅企业4.2规范的第128节。另外这可能有所帮助:http://community.jboss.org/message/619443 有趣的是JBoss AS7使用的是pax-web,因此这方面的文档也应该在很大程度上适用。
事实证明,我将使用EAR打包,因为我需要使用资源适配器。上述代码是否与EAR包兼容? – 2011-12-29 09:42:28
我用一些JBoss特定的信息编辑了我的答案,特别是你要创建一个WAB(还为maven-bundle-plugin添加了一个链接) – earcam 2011-12-29 11:10:26
还有一个问题:我创建了一个简单的OSGI包,它使查询数据库使用JBoss 7.1.0的数据源。当我尝试部署它时,JBoss 7.1.0让我感到恐惧。这可能是JBoss中的一个bug吗? – 2011-12-29 13:13:06