Ich habe eine seltsame auf einer JBoss 7.2.2-Instanz. Die Webapp funktioniert tadellos in Tomcat 7.x JSF 2.2.JBoss 7.2.2 <ui:insert> Attribut 'src', 'Datei' oder 'Seite' ist erforderlich
javax.servlet.ServletException: /WEB-INF/template.xhtml @ 10,38 Attribut 'src', 'Datei' oder 'Seite' erforderlich ist
Hier ist die „fehlerhaft "Vorlage (WEB-INF/template.xhtml).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<title><ui:insert name="title">My Web App</ui:insert></title>
Soweit ich weiß, <ui:insert>
unterstützt nur das name
Attribut ich einen Namespace-Konflikt vermuten, aber ich bin ratlos ...
Und hier ist die volle Stack-Trace
javax.servlet.ServletException: /WEB-INF/template.xhtml @10,38 <ui:insert> Attribute 'src', 'file' or 'page' is required
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
JBWEB000071: root cause
javax.faces.view.facelets.FaceletException: /WEB-INF/template.xhtml @10,38 <ui:insert> Attribute 'src', 'file' or 'page' is required
com.sun.faces.facelets.tag.AbstractTagLibrary$UserComponentHandlerFactory.createHandler(AbstractTagLibrary.java:309)
com.sun.faces.facelets.tag.AbstractTagLibrary.createTagHandler(AbstractTagLibrary.java:676)
com.sun.faces.facelets.tag.CompositeTagLibrary.createTagHandler(CompositeTagLibrary.java:184)
com.sun.faces.facelets.compiler.TagUnit.createFaceletHandler(TagUnit.java:120)
com.sun.faces.facelets.compiler.TextUnit.createFaceletHandler(TextUnit.java:117)
com.sun.faces.facelets.compiler.CompilationUnit.getNextFaceletHandler(CompilationUnit.java:115)
com.sun.faces.facelets.compiler.NamespaceUnit.createFaceletHandler(NamespaceUnit.java:82)
com.sun.faces.facelets.compiler.CompilationUnit.getNextFaceletHandler(CompilationUnit.java:115)
com.sun.faces.facelets.compiler.CompilationUnit.createFaceletHandler(CompilationUnit.java:106)
com.sun.faces.facelets.compiler.CompilationManager.createFaceletHandler(CompilationManager.java:373)
com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:441)
com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:403)
com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124)
com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:319)
com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:92)
com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:159)
com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:157)
com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:79)
com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:74)
com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99)
java.util.concurrent.FutureTask.run(FutureTask.java:262)
com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114)
com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:117)
com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:58)
com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:256)
com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:378)
com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:358)
com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:155)
com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:164)
com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:902)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
Tomcat als barebones Servletcontainer wird nicht mit JSF ausgeliefert, daher müssen Sie es (und JSTL) manuell in webapp bündeln. JBoss AS ist jedoch ein vollwertiger Java EE-Anwendungsserver, der bereits mit JSF (und JSTL) gebündelt ausgeliefert wird. Alle von webapp bereitgestellten Dateien würden nur zu Konflikten führen. Bist du dir dessen bewusst? Möglicherweise verwandt/duplizieren: http://stackoverflow.com/q/8081234 – BalusC
Danke Ballusc. Ja, mir ist das bekannt und ich habe mehrere Tests durchgeführt, bevor ich die tomcat webapp portiert habe. Einige aus Ihrer Sammlung von JSF-Antworten. Der einzige Unterschied, den ich bemerkte, war, dass ich das JSF-Servlet explizit in web.xml deklarieren musste (aber ich hatte immer die Jars im Lieferumfang). Jetzt, wo du mich daran erinnert hast, habe ich mir JBoss-Module angesehen und es sieht so aus, als ob es nur JSF 2.1 unterstützt. ls ../modules/system/layers/base/com/sun/jsf-impl/main jsf-impl-2.1.19-redhat-2.jar. Also ich denke, es ist Zeit zu [upgrade] (http://stackoverflow.com/questions/17085717/upgrade-jsf-mojarra-in-jboss-as-eap-wildfly) –