2013-06-21 106 views
4

我正在進行基於表單的身份驗證並使用以下語句。我已經意識到在實施方式HttpServletRequest->登錄方法自帶的servlet 3.0。(用計算器的用戶的幫助)使用Servlet 3.0和Weblogic 10.3

HttpServletRequest request = getHttpServletRequest(); 
request.login() 

所以我使用WebLogic作爲應用服務器,我已經準備了戰爭文件,而無需任何編譯錯誤,它適用於glassfish 3.1 appserver。但是,由於weblogic 10.3具有隱式支持2.5,因此會覆蓋Servlet 3.0.1.jar,因此出現以下錯誤。

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.login(Ljava/lang/String;Ljava/lang/String;)V 

我如何在WebLogic 10.3上運行使用Servlet 3.0 API我war文件,換句話說,我怎麼能停止WebLogic覆蓋的servlet 3.0 API?

+1

簡單的答案 - 你不能。 servlet API只是API,而不是實現。您必須遷移到更新的WebLogic版本......也許可以集成另一個容器,但我寧願不嘗試。 – home

回答

16

的Weblogic 10.3.x中的Servlet 2.5 container.You必須使用Weblogic 12c以上。它提供supportServlet 3.0

+0

謝謝。至少在短期內,我不想將weblogic 10.3遷移到新版本。因此我必須找到如何通過Servlet 2.5執行基於表單的認證 –