The question is published on by Tutorial Guruji team.
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..
Answer
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:
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).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).