2016-06-14 8 views
0

JBoss 7.2.2 인스턴스에 이상한 파일이 있습니다. webapp은 Tomcat 7.x JSF 2.2에서 완벽하게 작동합니다.JBoss 7.2.2 <ui:insert> 'src', 'file'또는 'page'속성이 필요합니다.

javax.servlet.ServletException : /WEB-INF/template.xhtml 여기

는 "결함이 필요 10,38 특성 'SRC', '파일'또는 '페이지'@ "템플리트 (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> 

지금까지 내가 <ui:insert>name 속성 내가 네임 스페이스 충돌을 의심하지만, 우둔 오전을 지원합니다 알고 ...

그리고 여기에 전체 스택 추적을에

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) 
+1

barebones 인 servletcontainer 인 Tomcat은 JSF와 함께 제공되지 않으므로 수동으로 webapp에 번들 (JSTL)을 묶어야합니다. 그러나 JBoss AS는 JSF (및 JSTL)가 번들로 제공되는 완전한 EE 애플리케이션 서버입니다. 웹 응용 프로그램에서 제공하는 것들은 충돌을 일으킬뿐입니다. 이거 알고 있니? 아마도 관련/중복 : http://stackoverflow.com/q/8081234 – BalusC

+0

감사합니다 Ballusc. 예, 저는 이것을 알고 있으며 tomcat webapp를 이식하기 전에 몇 가지 테스트를 실행했습니다. JSF 응답 컬렉션 중 일부입니다. 유일한 차이점은 web.xml에서 JSF 서블릿을 명시 적으로 선언해야한다는 것입니다 (하지만 항아리는 항상 포함 시켰습니다). 이제 제게 JBoss 모듈을 들여다 보았습니다. JSF 2.1 만 지원하는 것처럼 보입니다. ls ../modules/system/layers/base/com/sun/jsf-impl/main jsf-impl-2.1.19-redhat-2.jar. 그래서 나는 그것이 [업그레이드] 할 시간이라고 생각한다. (http://stackoverflow.com/questions/17085717/upgrade-jsf-mojarra-in-jboss-as-eap-wildfly) –

답변

0

감사입니다 BalusC의 의견 JBoss에서 JSF 모듈을 살펴 봤는데 AS 7.2.2에는 Mojara 2.1.19 (2.2.x가 아닌 - 많은 Facelets 기능 사용)가 포함되어 있다는 것이 분명했습니다.

그래서 과 this one on JBossDeveloper을 따랐고 JBoss 7.2.2는 이제 JSF 2.2.13을 지원합니다.

그리고 이걸로 webapp은 Tomcat의 경우와 같은 jar로 Tomcat에서와 같은 방식으로 작동합니다.