gpt4 book ai didi

linux - 丢失的 JSF 初学者 : Linux, Geronimo 和标签库

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:09 26 4
gpt4 key购买 nike

我将 Geronimo 与 J2EE 5 和 Tomcat 6 结合使用,并且尝试使用 JSF 创建一个简单的页面。我将标记库文件 myfaces_core.tldmyfaces_html.tld 放在 WEB-INF 中,它可以工作,但只能在 Windows 上使用。在 Linux 下,当我部署 WAR 时,IOException 未知原因。删除两个标记库文件使部署成为可能。但是当我在浏览器中打开页面时出现错误。它缺少文件 WEB-INF/myfaces_html.tld,该文件在 JSP 文件的 header 中指定。在 MyFaces 的示例中,使用的不是 MyFaces TLD,而是通用的 Sun Java TLD。我已经将 URI WEB-INF/myfaces_html.tld 覆盖为 http://java.sun.com/jsf/html 现在我收到了错误 绝对uri:http://java.sun.com/jsf/html无法在 web.xml 或随此应用程序部署的 jar 文件中解析

我现在迷路了。我是否必须将标记库描述文件放入我的 WAR 中才能使用 JSF 组件?这些文件已经包含在 Geronimo Container 的 MyFaces JAR 中,不是吗?无论平台如何,容器都必须具有相同的行为,或者不需要?我应该如何创建真正独立于平台的简单应用程序?

最佳答案

您应该提取第 3 方标签库的 JAR 文件并将其松散的 TLD 文件放在 /WEB-INF 文件夹中。 TLD 文件应该保存在它们起源的 JAR 文件中,并且 JAR 文件应该保持不变,只是放在运行时类路径中。任何书籍/教程/论坛提出的其他建议都应列入黑名单。

清理您的项目结构以摆脱那些松散的 TLD 文件并撤消与此相关的所有更改,如果有的话,当然也在 web.xml 中。

为了使 JSF 在 Tomcat 6 上运行,您的 /WEB-INF/lib 文件夹应该只包含两个文件:一个文件代表抽象 API,另一个文件代表具体实现。正如您显然选择使用 MyFaces 一样,它将是这两个 JAR 文件(可能在文件名末尾带有版本号,这取决于):

  • myfaces-api.jar
  • myfaces-impl.jar

将它们放在 /WEB-INF/lib 文件夹中,该文件夹是 webapp 默认运行时类路径的一部分。就这样。下一步是在您的网络应用程序的 web.xml 中声明和映射 FacesServlet

确保您正在阅读正确的书籍/教程。

关于linux - 丢失的 JSF 初学者 : Linux, Geronimo 和标签库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6962489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com