我有一个应用程序的以下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>
不确定我是否完全理解这个错误。我看到它想让我在那里声明会话超时。我会试试的。。
<cookie-config>
是在Servlet 3.0中引入的,在2.5等旧版本中不受支持。您的web.xml
已声明符合Servlet 2.5。
您有两个选项:
-
重新声明符合
web.xml
的Servlet 3.0(它隐含地还需要与Servlet 3.0兼容的目标容器,如Tomcat7、Glassfish 3、WebLogic12等)。 -
如果您不能升级,那么就忘记它,并使用自定义servlet过滤器或特定于容器的配置来解决它(例如Tomcat/Joss中的
Valve
;无法直接回答WebLogic,因为我从未真正使用过它,请考虑为该部分问一个新问题)。