2011-12-19 139 views
1

我是新的Web java编程。我想创建一个简单的JSF模块化应用程序。我发现了一个简单的教程link如何用OSGI模块创建一个简单的WAR文件

但不幸的是我还有一些问题如何使用OSGI:

  1. 我可以建立在它的一些JSF页面简单OGI束和地点?如果不是通常的web应用程序开发。
  2. 你可以给我链接与示例如何我可以调用函数并将形式的WAR文件传递给OSGI模块。

问候

回答

4

不为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,因此这方面的文档也应该在很大程度上适用。

+0

事实证明,我将使用EAR打包,因为我需要使用资源适配器。上述代码是否与EAR包兼容? – 2011-12-29 09:42:28

+0

我用一些JBoss特定的信息编辑了我的答案,特别是你要创建一个WAB(还为maven-bundle-plugin添加了一个链接) – earcam 2011-12-29 11:10:26

+0

还有一个问题:我创建了一个简单的OSGI包,它使查询数据库使用JBoss 7.1.0的数据源。当我尝试部署它时,JBoss 7.1.0让我感到恐惧。这可能是JBoss中的一个bug吗? – 2011-12-29 13:13:06

相关问题