从WebLogic中的共享库访问Facelets文件

时间:2013-11-08 17:43:19

标签: jsf-2 weblogic shared-libraries facelets

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

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

META-INF->resources->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)

这是如何引起的?如何解决?

1 个答案:

答案 0 :(得分:0)

自Servlet 3.0起,仅支持使用JAR的/META-INF/resources作为共享的webapp资源。因此,只要您将Web应用程序部署到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资源解析器,详见答案:How to create a modular JSF 2.0 application?