【问题标题】:web.xml validation in Weblogic throws error because of cookie-config由于 cookie-config,Weblogic 中的 web.xml 验证引发错误
【发布时间】:2013-08-30 15:27:05
【问题描述】:

我有一个应用程序的以下 web.xml。

<?xml version="1.0"?>
<web-app version="2.5" 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">
<display-name>..</display-name>

<description>..</description>



<session-config>
    <cookie-config>
        <name>SESSIONDEBUG_JSESSIONID</name>
    </cookie-config>
  </session-config>
</web-app>

部署时出现以下错误

Caused By: weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
problem: cvc-complex-type.2.4a: Expected element 'session-timeout@http://java.sun.com/xml/ns/javaee' instead of 'cookie-    config@http://java.sun.com/xml/ns/javaee' here in element session-    config@http://java.sun.com/xml/ns/javaee:<null>

不确定我是否完全理解错误。我看到它希望我在那里声明会话超时。我试试看..

【问题讨论】:

    标签: java servlets cookies weblogic web.xml


    【解决方案1】:

    &lt;cookie-config&gt;Servlet 3.0 中是 introduced,在 2.5 等旧版本中不受支持。您的 web.xml 已声明符合 Servlet 2.5。

    你有两个选择:

    1. 重新声明 web.xml 符合 Servlet 3.0(隐含还需要与 Servlet 3.0 兼容的目标容器,例如 Tomcat 7、Glassfish 3、WebLogic 12 等)。

    2. 如果您无法升级,那么忘记它并使用自定义 servlet 过滤器或特定于容器的配置来解决它(例如 Tomcat/JBoss 中的 Valve;对于 WebLogic 无法直接回答由于我从未真正使用过它,请考虑针对该部分提出一个新问题。

    【讨论】:

    • 如何在我的 web.xml 中声明 web-common_3_0.xsd?我将 web.xml 升级到 3.0 java.sun.com/xml/ns/javaee" xmlns:xsi="w3.org/2001/XMLSchema-instance" xsi:schemaLocation="java.sun.com/xml/ns/javaee web-app_3_0.xsd" version="3.0">跨度>
    • 差不多就是这样,但是您绝对应该明白,如果您的目标容器不是与 Servlet 3.0 兼容的容器,这仍然会失败。它至少应该是 WebLogic 12。如果它是较旧的 WebLogic 版本并且您无法升级它,那么故事就结束了。
    • 在 Weblogic 12.1 上仍然失败。至少某些 WL12.1 版本的 Servlet 3 实现是不完整的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2011-09-03
    • 2013-11-26
    • 2019-07-28
    • 2019-02-16
    • 2013-11-18
    相关资源
    最近更新 更多