Jsf 2 从WebLogic中的共享库访问Facelets文件
我们正在尝试主应用程序访问WebLogic中部署的共享库中的公共Facelets文件 公共Facelets文件位于共享库中的以下路径中: META-INF->resources->common-ac->HelloWorld.xhtml META-INF->resources->common ac->HelloWorld.xhtml 我们通过以下方式在主应用程序页面中访问:Jsf 2 从WebLogic中的共享库访问Facelets文件,jsf-2,weblogic,shared-libraries,facelets,Jsf 2,Weblogic,Shared Libraries,Facelets,我们正在尝试主应用程序访问WebLogic中部署的共享库中的公共Facelets文件 公共Facelets文件位于共享库中的以下路径中: META-INF->resources->common-ac->HelloWorld.xhtml META-INF->resources->common ac->HelloWorld.xhtml 我们通过以下方式在主应用程序页面中访问: <ui:include src="/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)
javax.faces.view.facelets.TagAttributeException:/…public/Home.xhtml@47,50无效路径:/common ac/HelloWorld.xhtml
位于com.sun.faces.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:125)
这是如何造成的,我如何解决它?只有在Servlet 3.0之后才支持使用JAR的
/META-INF/resources
作为共享webapp资源。因此,只要您将您的webapp部署到一个与Servlet 3.0兼容的容器(例如WebLogic 12),该容器具有声明为符合Servlet 3.0规范的web.xml
,那么它就应该能够满足要求
但是,如果您正在将您的webapp部署到非Servlet 3.0容器(例如WebLogic 11或更早版本),或者无法声明您的
web.xml
conform Servlet 3.0规范,或者目标容器暴露了从JAR解析资源的错误(例如早期JBoss 6版本),然后,您需要创建一个定制的Facelets资源解析程序,如下面的回答所述:这是一个与Servlet 3.0兼容的webapp吗?问题是不会,但你们永远不会知道WebLogic我们的web.xml定义为2.4,但我们使用JSF2.1