簡體   English   中英

javax.servlet.ServletException:Servlet中的AS-WEB-CORE-00089異常

[英]javax.servlet.ServletException: AS-WEB-CORE-00089 exception In servlets

我有一個稱為Document的servlet,我想將所有以Document開頭的請求重定向到

http://localhost:8080/CollabEdit/Document/abcdwcklsclds 

應該重定向到servlet文檔。 因此,我使用了這樣的注釋:

@WebServlet("/Document/*")

但是,由於某些未知的原因,它給出了一個異常:

javax.servlet.ServletException: AS-WEB-CORE-00089

我打電話后立即拋出Document.java中的異常

request.getRequestDispatched(“ main.html”)。forward(request,response)。 否則也不例外。

但是,在其他servlet中有相同的請求時,可以很好地調用main.html。

forwardredirect 不是一回事。 重定向使您可以轉到任何URL,最終可以在另一台服務器上或使用另一種協議,因為您要求客戶端查詢該URL。

在轉發中,您要求Servlet容器將控件傳遞給同一應用程序的另一個Servlet(在同一上下文中)。 當您使用相對路徑時,實際上是在請求什么servlet: http://host.do.main/appname/Document/main.html因為相對URL添加在當前頁面地址的末尾(它是甚至可能是.../Document/.../main.html )!

並且聲明了/Document下的任何頁面都應由Document servlet服務...因此無限循環...

您可以通過兩種方式修復它:

  • 如果你真的需要使用相對路徑(這是極其危險的,但你可能有理由這樣做),試圖../main.html如果從名為/Document../../main.html如果從名為/Document/something
  • 使用絕對路徑:

     contextPath = request.getContextPath(); request.getRequestDispatcher(contextPath + "/main.html").forward(request, response) 

篩選器看起來正確。

您正在使用Servlets 3.0且沒有較舊的版本嗎? 在舊版本中,您將必須編輯web.xml 在3.0中,它必須看起來像這篇文章

Document是否擴展HttpServlet

您能否向我們展示更多您的代碼,也許那么會更容易發現問題所在。

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM