Jsf 在 Apache Karaf 3.0.3 中的应用

标签 jsf osgi war apache-karaf

我是 OSGI 的新手,正在尝试在 OSGI 框架上运行 jsf 应用程序。为此,我试图将“.war”文件部署到 apache karaf 3.0.3。首先,我使用

为 karaf 安装了 war 特性

feature:install -v war

命令。然后,我将我的 .war 文件移动到 karaf 的“部署”文件夹中。我遇到了一些依赖错误,这避免了我的 war 文件处于事件状态。因此,我将必要的 .jar 文件移至部署文件夹并设法使我的 .war 文件“处于事件状态”。但是,当我尝试通过此链接“http://localhost:8181/JavaServerFaces/hello.xhtml”访问 .xhtml 页面时,出现“未找到”错误。我检查了 apache 的日志文件,有异常:

"java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener not found by JavaServerFaces"

尽管删除了这些行

  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>

从 web.xml 和重新部署 .war 文件,我得到了同样的异常。我应该怎么做才能摆脱这个错误?我是否遗漏了 OSGI 的基本知识或其他内容?

感谢您的建议。

最佳答案

请看一看 Pax Web 示例是如何做到的。 您将需要一个 JSF 实现的 OSGi 就绪版本。 Pax Web 已使用 myfaces 进行了测试。

可在 the pax web samples 找到可用的 JSF 示例应用程序 从 Karaf 4 和 Pax Web 4 开始,有一个功能可以安装所有必需的包。由于您现在正在使用 Karaf 3,请查看以下列表:

<bundle>mvn:org.apache.myfaces.core/myfaces-api/${jsf-myfaces.version}</bundle>
    <bundle>mvn:org.apache.myfaces.core/myfaces-impl/${jsf-myfaces.version}</bundle>
    <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr250-1.0/2.0.0</bundle>
    <bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr303-api-1.0.0/1.8.0</bundle>
    <bundle>mvn:org.apache.geronimo.bundles/commons-discovery/0.4_1</bundle>
    <bundle>mvn:commons-beanutils/commons-beanutils/1.8.3</bundle>
    <bundle>mvn:commons-collections/commons-collections/3.2.1</bundle>
    <bundle>mvn:commons-codec/commons-codec/1.8</bundle>
    <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-digester/1.8_4</bundle>

这些是在 karaf 中使用 JSF 启动所需的包。

关于Jsf 在 Apache Karaf 3.0.3 中的应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29601185/

相关文章:

jsf - 当与查询参数关联的转换/验证失败时执行重定向

java - 如何在所有包启动后调用 osgi 应用程序的启动方法?

java - gradle 从文件夹创建多个 war 文件

tomcat6 - 强制 Tomcat 6 在 Windows 上停止

java - 无法通过管理控制台在 JBoss 6.1 EAP 上进行非托管部署

html - 数据表内的 CSS primefaces panelgrid

java - 了解 Java 中由容器管理的对象的垃圾回收

jsf - 如何添加具有多个源 mp3 的媒体播放器

java - 使用配置文件构建 Maven 项目

java - Glassfish、OSGi Web 应用程序包 (WAB) 和虚拟服务器