2013-08-30 20 views
7

我有一個應用程序的follwing web.xml。Weblogic中的web.xml驗證由於cookie配置引發錯誤

<?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 '[email protected]://java.sun.com/xml/ns/javaee' instead of 'cookie- [email protected]://java.sun.com/xml/ns/javaee' here in element session- [email protected]://java.sun.com/xml/ns/javaee:<null> 

不知道我完全理解錯誤。我看到它希望我在那裏聲明會話超時。我會試一試..

回答

9

<cookie-config>introducedServlet 3.0和舊版本,如2.5不支持。您的web.xml被聲明符合Servlet 2.5。

你已2種選擇:

  1. 重新聲明web.xml符合的Servlet 3.0(其隱含地也需要一個Servlet 3.0兼容的目標容器如Tomcat 7,Glassfish的3時,WebLogic 12等)。

  2. 如果不能升級,然後忘記它,使用自定義Servlet過濾器或特定容器的配置(解決它例如在Tomcat中/ JBoss的一個Valve;因爲我不能回答過頭頂爲WebLogic我從來沒有真正使用它,考慮問這個部分的新問題)。

+0

如何在web.xml中聲明web-common_3_0.xsd?我將我的web.xml升級到3.0 user6123723

+1

這是非常多的,但你應該明白這一點如果您的目標容器不是Servlet 3.0兼容的,那麼仍然會失敗。它至少應該是WebLogic 12.如果它是較舊的WebLogic版本並且無法升級它,那麼這是故事結束。 – BalusC

+2

它在Weblogic 12.1上仍然失敗。至少一些WL12.1版本的Servlet 3實現不完整。 – jwenting