【问题标题】:WARNING: Unknown version string [3.1]. Default version will be used警告:未知版本字符串 [3.1]。将使用默认版本
【发布时间】:2014-06-15 02:48:39
【问题描述】:

每当我在 Eclipse 中运行 web 应用程序时,我总是会收到以下警告:

WARNING: Unknown version string [3.1]. Default version will be used.

这是什么?我该怎么办?

【问题讨论】:

    标签: java eclipse jakarta-ee


    【解决方案1】:

    或者您可能只是使用不支持 Servlet 3.1 的 Web 服务器。例如,Tomcat 7 仅支持 Servlet 3.0 及以下版本。而 Tomcat 8 支持 servlet 3.1。

    【讨论】:

    • 但是怎么追踪,这个3.1的属性在哪里呢?我遇到了同样的问题,但主要设置是“java.sun.com/xml/ns/javaee" ...”。
    • 它应该在你的 web.xml 中。如果设置为 3.0,不确定为什么会收到警告。你能包含整个网络应用的起始标签吗?
    • 我们已经以某种方式修复了它,我不太记得了。可能设置是 3.0,但我们使用了一些 3.1 API。
    • 有趣的是,我们使用的是 Tomcat 8,它本来应该可以处理 3.1 API。
    • 是的,这很有趣。很高兴你让它工作了。
    【解决方案2】:

    您收到警告,因为 XML 不正确,但应用 应该使用基于 DOCTYPE 的有效版本 2.3 运行。 删除不需要的版本属性将使该警告消失。

    【讨论】:

      【解决方案3】:

      只是为了提供这里所说的更多上下文,我在 web.xml 中有以下内容:

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app version="3.1" 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">
          <servlet>
              <servlet-name>Servlet</servlet-name>
              <servlet-class>org.mycorp.Servlet</servlet-class>
          </servlet>
          <servlet-mapping>
              <servlet-name>Servlet</servlet-name>
              <url-pattern>/</url-pattern>
          </servlet-mapping>
          <session-config>
              <session-timeout>
                  30
              </session-timeout>
          </session-config>
      </web-app>
      

      并且收到了上面针对 Tomcat 7 的警告。要让它消失,您需要进行更改:

      1. web-app version="3.1"web-app version="3.0"
      2. web-app_3_1.xsdweb-app_3_0.xsd

      希望这对未来的读者有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-02
        • 1970-01-01
        • 2017-11-29
        • 2016-08-22
        • 2017-05-19
        • 1970-01-01
        • 2020-05-07
        • 2019-03-27
        相关资源
        最近更新 更多