【问题标题】:Trying to upgrade to jetty-runner 8.1.5, startup fails on JSTL <%@ taglib %> import of the JSTL standard tags尝试升级到 jetty-runner 8.1.5,在 JSTL <%@ taglib %> 导入 JSTL 标准标签时启动失败
【发布时间】:2012-08-03 23:42:17
【问题描述】:

我的实际目标是得到

<%@ page trimDirectiveWhitespaces=true %>

工作。我目前正在使用 jetty-runner 7.4.2 运行我的 Web 应用程序。作为一个随机的尝试,我下载了一个更新的版本。有了这个,当我尝试启动我的网络应用程序时,我得到了这个异常:

PWC6188:绝对 uri:http://java.sun.com/jsp/jstl/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析

我发现很多人提到了这一点,但没有任何答案对我来说有意义。对于它的价值,我在我的 WEB-INF/lib 目录中有一个最新的 jstl jar 文件(当然,它与以前版本的 jetty-runner 完美配合,或者至少我猜它确实;我当然没有得到那个例外)。

我认为,我正在运行的 .war 文件在结构上没有什么特别之处,而且它在 Jetty(通过 jetty-runner)上运行了很长时间。它也可以在未修改的 Tomcat 和 Resin 中使用。因此,jetty-runner 版本 7 和版本 8 之间存在一些关键区别(可能是 Jetty 本身;不确定),我怀疑解决方案非常简单;我就是找不到。

这是一个 v2.5 网络应用,所以我的 taglib 参考如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

edit 这是我的 web.xml(应用程序之一)中的 web-app 标签:

<web-app
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    metadata-complete="false"
    version="2.5">

【问题讨论】:

  • 我不记得确切的术语,但是 web.xml 之上的 xml 版本声明,您是否也检查过这些更新?
  • @thinksteep 我会发布它 - 我很确定它是正确的,因为 .war 文件在版本 7 和其他 servlet 容器中工作正常。

标签: java jakarta-ee jetty jstl


【解决方案1】:

如果您使用 Java EE 7,则必须使用 jcp 命名空间,而不是 java.sun,在某些服务器中它们可以保留以保持兼容性,但由于新规范适用于 EE 7,并且 java 不再是 sun 的一部分,因此它们是删除它,如果您使用的是 Java ee 6,您应该保留它并且不要更新到 Java ee 7 编译服务器,或者检查具有该名称空间的服务器,如果您想使用 EE 7,那么您必须更改所有您的命名空间。 缺少命名空间也是一个错误的想法,因为可能导致重复的 id 和各种东西

【讨论】:

  • 即使在 glassfish 4 中,一些命名空间也会与旧的 mojarra 版本发生冲突,并且当您更新时,如果您使用 java.sun,您将失去一些 EE 7 的附加功能,例如带有视图范围 bean 的视图侦听器
  • 谢谢,我会试试这个(现在我已经等了一年来检查我自己的问题)。
  • 这很容易。非常感谢你!这就像我会想到的最后一件事!
【解决方案2】:

只是为了支持 rekiem87 写的内容,这是我用来使 Jetty-Runner 9.2.3 工作的 3.1 &lt;web-app&gt; 标头:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">

我所做的只是更改我的 web.xml 以使用该标头,然后重新启动 Jetty(使用新版本),一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多