0

我们正在尝试主应用程序从部署在 WebLogic 中的共享库中访问常见的 Facelets 文件。

常见的 Facelets 文件位于共享库的以下路径中:

META-INF->资源->common-ac->HelloWorld.xhtml

我们在主应用程序页面中访问它:

<ui:include src="/common-ac/HelloWorld.xhtml" /> 

但是,这不起作用,它引发以下异常:

javax.faces.view.facelets.TagAttributeException: /....public/Home.xhtml @47,50 <ui:include src="/common-ac/HelloWorld.xhtml"> Invalid path : /common-ac/HelloWorld.xhtml
    at com.sun.faces.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:125)

这是如何引起的,我该如何解决?

4

1 回答 1

0

仅从 Servlet 3.0 起才支持将 JAR/META-INF/resources用作共享的 webapp 资源。因此,只要您将您的 webapp 部署到与 Servlet 3.0 兼容的容器(例如 WebLogic 12),web.xml并声明符合 Servlet 3.0 规范,那么它应该可以解决问题。

但是,如果您将 webapp 部署到非 Servlet 3.0 容器(例如 WebLogic 11 或更早版本),或者无法声明web.xml符合 Servlet 3.0 规范,或者目标容器暴露了从 JAR 解析资源的错误(例如早期的 JBoss 6 版本),那么您需要创建一个自定义 Facelets 资源解析器,如以下答案所述:如何创建模块化 JSF 2.0 应用程序?

于 2013-11-11T14:50:04.017 回答