8

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

4

1 回答 1

12

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).

于 2013-08-30T15:30:44.270 回答