我在 OSGi 环境中运行 JSF 时遇到问题。我正在使用 jetty web 容器和 equinox 来提供 OSGi 功能。我的应用程序的结构如下:第一个包包含所有 JSF 库,web.xml
以及一个config.xml
. 它看起来如下:
bundle1
----src/main/java
-------de/package
----------Activator.java
----------JSFResolver.java
----src/main/resource
------ WebContent
----------META-INF
-------------face-config.xml
-------------web.xhtml
----------start.xhtml
-----------include.xhtml
----libs (containing all JSF required Jars)
第二个bundle的结构如下:
bundle2
---src/main/java
------de/package
----------Bean.java
---src/main/resource
------META-INF
---------face-config.xml
------WebContent
---------index.xhtml
在运行 Equinox 的应用程序时,bundle1 是所有浏览器请求发送到的主包。在第二个包中,index.xhtml
可以根据请求由第一个包检索文件。捆绑包 2从index.xhtml
捆绑包 2 中的“Bean.java”获取其值和属性。当我请求“index.xhtml”时出现问题,找不到 Bean.java 类。我认为这是因为 bundle1 的类加载器找不到它,它不知道它。所以我想问是否有人知道如何解决这个问题。如果是这样,请帮助我,我已经尝试了所有的可能性..
实际上是否有可能让 JSF 在使用相同的多个捆绑包上运行FaceletsContex
?我可以在每个包中拥有单独的 faces-config.xml 文件,这些文件都可以连接到其他包中的其他 faces-config.xml 吗?谁能给我一个解决方案。示例代码会有所帮助。