web.xml validation in Weblogic throws error because of cookie-config
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).
Comments
-
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 over 10 yearsHow 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 over 10 yearsThat'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 over 8 yearsIt still fails on Weblogic 12.1. The Servlet 3 implementation of at least some WL12.1 versions is incomplete.