【问题标题】:JSPG0047E: Unable to locate tag library for uri http://www.ibm.com/jsf/html_extendedJSPG0047E: 找不到 uri http://www.ibm.com/jsf/html_extended 的标记库
【发布时间】:2020-09-10 17:17:26
【问题描述】:

尝试访问部署在 Linux 机器上的 WAS 8.5.5.16 上的应用程序时出现标题中提到的错误。在本地(windows)机器上部署相同的应用程序(ear)如何正常工作:这是页面的顶部:

<%-- jsf:pagecode language="java" location="/JavaSource/pagecode/Welcome.java" --%><%-- /jsf:pagecode --%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://www.ibm.com/jsf/html_extended" prefix="hx"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@page import="java.net.URLEncoder"; %><html lang="<%= URLEncoder.encode(request.getLocale().getLanguage(),"UTF-8") %>">
<HEAD>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META name="GENERATOR" content="IBM Software Development Platform">

如果我删除 行,页面加载但缺少登录按钮。需要了解什么jar 包含此参考,我猜它无法找到。我正在粘贴下面的日志部分。不知道是什么问题

日志:

[10/09/20 18:02:58:468 BST] 00000153 webapp        E com.ibm.ws.webcontainer.webapp.WebApp reportRecursiveError Error Page Exception:
[10/09/20 18:02:58:506 BST] 00000153 webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[/login.jsp]: com.ibm.ws.jsp.JspCoreException: JSPG0047E: Unable to locate tag library for uri http://www.ibm.com/jsf/html_extended
        at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76)
        at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:366)
        at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
        at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369)
        at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419)
        at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:234)
        at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:216)
        at com.ibm.ws.jsp.translator.JspTranslator.processVisitors(JspTranslator.java:127)
        at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJsp(JspTranslatorUtil.java:263)
        at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJspAndCompile(JspTranslatorUtil.java:123)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.translateJsp(AbstractJSPExtensionServletWrapper.java:560)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper._checkForTranslation(AbstractJSPExtensionServletWrapper.java:477)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.checkForTranslation(AbstractJSPExtensionServletWrapper.java:298)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.findWrapper(AbstractJSPExtensionProcessor.java:498)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionProcessor.getServletWrapper(AbstractJSPExtensionProcessor.java:338)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1010)
        at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1404)
        at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:196)
        at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:415)
        at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:494)
        at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:162)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:114)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
        at com.ibm.mdm.ui.filter.SessionFilter.doFilter(SessionFilter.java:191)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.ibm.mdm.ui.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:66)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4047)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1016)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:213)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
        at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
        at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1833)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)

[10/09/20 18:02:58:513 BST] 00000153 webapp        E com.ibm.ws.webcontainer.webapp.WebApp `enter code here`logServletError SRVE0293E: [Servlet Error]-[/error500.jsp]: com.ibm.ws.jsp.translator.JspTranslationException: JSPG0227E: Exception caught while translating /error500.jsp:
/error500.jsp(0,1) --> JSPG0005E: tld file could not be found for uri[http://www.ibm.com/jsf/html_extended] prefix [hx]

【问题讨论】:

  • 显然本地主机上的服务器与生产中的服务器不同。首先对齐。
  • Linux 上与应用程序关联的库有哪些?工作环境和非工作环境之间是否存在任何应用程序、库或服务器配置差异?

标签: jsp jsf websphere tag-library-descriptor


【解决方案1】:

旧的 IBM JavaServer Faces 小部件库 (JWL) 库使用该名称空间。您需要提供正确版本的jsf-ibm.jar,它应该位于${WAS_HOME}\optionalLibraries\IBM\jwl\2.0。有关详细信息,请参阅WebSphere JWL DocumentationResolving JSF Widget Library problems in JSF applications

【讨论】:

  • 谢谢@wtlucy。试过这个,现在得到这个错误:错误消息:java.lang.StackOverflowError 错误代码:500 目标 Servlet:错误堆栈:com.ibm.wsspi.webcontainer.logging.WebContainerLogger.isLoggable 处的 java.lang.StackOverflowError(WebContainerLogger.java: 193) 在 com.ibm.ws.webcontainer.srt.SRTServletRequest.getAttribute(SRTServletRequest.java:392) 在 javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:85) 在
  • @boyhenryalpha 我认为您可能想为该错误创建一个单独的问题 - 包含异常的完整堆栈 - 因为我不确定它是否直接相关。如果我的回答解决了您最初询问的JSPG0047E,请将其标记为已接受。
  • ibm.com/support/pages/… 你认为这就是我现在收到此错误的原因吗?正如您所建议的,我将 WEB-INF/lib 文件夹中的 jsf-ibm-3.1.15 与 optionalLibraries\IBM\jwl\2.0 中的 jsf-ibm.jar 交换
  • 抱歉,我以为您的应用中根本没有捆绑 JWL 库!您链接到的文档页面可能存在不同的问题,但如果您之前在最初打开问题时在应用程序中使用了较新版本的 jsf-ibm,那么我不确定您为什么在加载 @ 时遇到问题987654327@标签!我已经用一个额外的文档链接更新了答案。
  • 然后回到方块 1 :)
猜你喜欢
  • 2011-09-29
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-13
  • 2015-01-01
相关资源
最近更新 更多