【问题标题】:javax.faces.view.facelets.TagException:Tag Library supports namespace: http://xmlns.oracle.com/adf/faces/rich, but no tag was defined for name: buttonjavax.faces.view.facelets.TagException:标签库支持命名空间:http://xmlns.oracle.com/adf/faces/rich,但没有为名称定义标签:按钮
【发布时间】:2015-05-23 08:32:53
【问题描述】:

我配置了我的 Tomcat 环境,并成功地将 ADF Essentials 部署到使用 Jdeveloper11.1.2.4 开发的 Tomcat6.x 上。

现在我正在尝试将使用 Jdeveloper12c 开发的示例 ADF Web 应用程序(仅包含一个带有按钮的页面)部署到 Tomcat 6.x 和 Tomcat 7.X 上。在两台服务器上都出现以下异常

type Exception report

message /M.jsf @15,81 <af:button> Tag Library supports namespace: http://xmlns.oracle.com/adf/faces/rich, but no tag was defined for name: button

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /M.jsf @15,81 <af:button> Tag Library supports namespace: http://xmlns.oracle.com/adf/faces/rich, but no tag was defined for name: button
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:514)
    oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:65)
    oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
    oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
    org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

javax.faces.view.facelets.TagException: /M.jsf @15,81 <af:button> Tag Library supports namespace: http://xmlns.oracle.com/adf/faces/rich, but no tag was defined for name: button
    com.sun.faces.facelets.compiler.CompilationManager.pushTag(CompilationManager.java:291)
    com.sun.faces.facelets.compiler.SAXCompiler$CompilationHandler.startElement(SAXCompiler.java:232)
    com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
    com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:766)
    com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:355)
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2778)
    com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
    com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
    javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
    com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:392)
    com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:368)
    com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:297)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:92)
    com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:162)
    com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:160)
    com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:83)
    com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:78)
    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:119)
    com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:62)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:248)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:193)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:741)
    org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.buildView(ViewDeclarationLanguageFactoryImpl.java:341)
    oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:990)
    oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:342)
    oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
    oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:65)
    oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
    oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
    org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
    org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

在此之后,我从该页面中删除了按钮,并添加了一个&lt;af:outputText value="outputText1" id="ot1"/&gt;。现在这个页面已经在Tomcat7.x上成功运行了。

请帮助我。提前问好。

【问题讨论】:

  • 在 Tomcat 上部署时,您的标签库似乎比与您的 Weblogic 部署对应的版本旧一个版本。 af:button 是最新 ADF 版本附带的标签,而 af:outputText 已经存在了很多版本。

标签: jsf tomcat7 tomcat6 jsf-2.2 oracle-adf


【解决方案1】:

如果您使用的是 JDeveloper 11.1.x.x,则没有任何称为按钮的东西,它被称为 af:commandButton 或 af:goButton。

在 12c 中,这两个按钮已被替换为 af:button,根据其属性可以充当 af:commandButton 或 af:goButton。由于您从 12c 降级到 11g,因此您需要处理这些并使用等效按钮。 af:commandButton 和 af:goButton 在 12c 中也适用于向后兼容,因此您应该可以将它们与 12c 一起使用,尽管不推荐。

【讨论】:

    猜你喜欢
    • 2017-11-28
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2012-09-18
    • 2018-12-15
    • 2018-08-12
    • 2016-04-09
    相关资源
    最近更新 更多