Jsf 在分解部署的公共jar中找不到Facelets模板

Jsf 在分解部署的公共jar中找不到Facelets模板,jsf,jakarta-ee,servlets,jsf-2,facelets,Jsf,Jakarta Ee,Servlets,Jsf 2,Facelets,下面是我的Facelet模板位置:WAR/WEB-INF/lib/common.jar/META-INF/resources/m0/template.xhtml。 当war和其中的jar作为分解文件夹部署时,它抛出以下异常:无效路径:/m0/template.xhtml 当战争和jar被部署为真正的档案时,或者当它们在一个耳朵里爆炸时,它就工作了,但在一场简单的战争中就不行了 其他信息: Windows和Linux上的问题是相同的。 这个问题只发生在分解的战争中,其中common.jar是WEB

下面是我的Facelet模板位置:WAR/WEB-INF/lib/common.jar/META-INF/resources/m0/template.xhtml。 当war和其中的jar作为分解文件夹部署时,它抛出以下异常:无效路径:/m0/template.xhtml 当战争和jar被部署为真正的档案时,或者当它们在一个耳朵里爆炸时,它就工作了,但在一场简单的战争中就不行了

其他信息:

Windows和Linux上的问题是相同的。 这个问题只发生在分解的战争中,其中common.jar是WEB-INF/lib下的分解文件夹。 当common.jar是EAR/lib下的一个文件夹时,问题不会出现在分解的EAR中。 我已经读到facelets模板是由ExternalContextgetResource解析的,它委托ServletContextgetResource从/WEB-INF/lib/*.jar加载资源/META-INF/资源。它只适用于真正的罐子吗?或者我应该尝试ServletAPI的另一个实现吗?我正在使用Glassfish 3.1.2和Mojarra 2.1.6

我想在开发过程中使用分解部署,因为测试更改要快得多


谢谢您的帮助。

这是堆栈跟踪:javax.faces.view.facelets.TagAttributeException:/help/overview/overview.xhtml@8,32无效路径:/m0/template.xhtml位于com.sun.faces.facelets.tag.ui.CompositionHandler.applyCompositionHandler.java:160位于com.sun.faces.facelets.compiler.NamespaceHandler.applyNamespaceHandler.java:93 atcom.sun.faces.facelets.compiler.EncodingHandler.applyEncodingHandler.java:86在com.sun.faces.facelets.impl.DefaultFacelet.applyDefaultFacelet.java:152…正如我所说的,解决方法是将战争包含在EAR中。