web.xml validation in Weblogic throws error because of cookie-config

21,724

The <cookie-config> is introduced in Servlet 3.0 and not supported in older versions such as 2.5. Your web.xml is declared conform Servlet 2.5.

You've 2 options:

  1. Redeclare web.xml conform Servlet 3.0 (which implicitly also requires a Servlet 3.0 compatible target container such as Tomcat 7, Glassfish 3, WebLogic 12, etc).

  2. If you can't upgrade, then forget it and solve it using a custom servlet filter or container-specific configuration (e.g. a Valve in Tomcat/JBoss; can't answer off top of head for WebLogic as I've never really used it, consider asking a new question for that part).

Share:
21,724
user6123723
Author by

user6123723

Link

Updated on August 31, 2020

Comments

  • user6123723
    user6123723 over 3 years

    I have the follwing web.xml for an application.

    <?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>
    

    I get the following error upon deployment

    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>
    

    Not sure I fully understand the error. I see that it wants me to declare session-timeout in there. I'll give that a try..

  • user6123723
    user6123723 over 10 years
    How can I declare the web-common_3_0.xsd in my web.xml? I upgraded my web.xml to 3.0 <web-app xmlns="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">
  • BalusC
    BalusC over 10 years
    That's pretty much it, but you should absolutely understand that this would still fail if your target container is not a Servlet 3.0 compatible one. It should be at least WebLogic 12. If it's an older WebLogic version and you can't upgrade it, then it's end of story.
  • jwenting
    jwenting over 8 years
    It still fails on Weblogic 12.1. The Servlet 3 implementation of at least some WL12.1 versions is incomplete.