2011-08-28 51 views
1

我使用UrlRewriteFilter庫以避免編寫自己的url過濾器。UrlRewriteFilter運行元素產生404,但元素在GAE/Java上工作正常

我敢肯定,我有事情設置正確,因爲當我有這個在我的URL重寫XML:

<rule> 
     <from>^/urlIWantToMap</from> 
     <to type="redirect">/WhereIWouldLikeItToGo</to> 
    </rule> 

這似乎很好地工作(如,打http://localhost:8080/urlIWantToMap送我到預定位置)。請注意,我必須將servlet映射添加到我的web.xml中。

如果我試試這個,雖然...

<rule> 
     <from>^/urlIWantToMap</from> 
     <run class="mypackage.MyServletClass" method="doGet"/> 
    </rule> 

我得到一個HTTP 404。我認爲這是在這裏(即使我該溶液/分辨率筆者可疑描述的同樣的問題說到):

http://greatwebguy.com/programming/java/urlrewritefilter-servlet-filter-problem-in-websphere-6105-and-greater/

我可以看到這種情況出現,如果出現了某種變化,Web過濾器的行爲,將抑制UrlRewriteFilter從打電話到servlet。要麼;或者我正在犯一個明顯的錯誤,我沒有看到。

回答

1

當應用程序服務器啓動時,你看到類似這樣的東西嗎?

INFO: org.tuckey.web.filters.urlrewrite.Run ERROR: could not find method with the name doGet on mypackage.MyServletClass 

即使你不這樣做,做了公共方法的doGet存在不帶任何參數?在我的情況下,它是受保護的,雖然http://localhost:8080/MyProject/rewrite-status告訴我寄託都很好,我仍然有404

我不得不創建一個包裝方法,使公衆的doGet和配置urlrewrite.xml這樣的:

<run class="my.wrappers.WrapperServlet" method="doGet(HttpServletRequest, HttpServletResponse)" /> 
+0

我沒有這個動作,但是當我有機會的時候,我會回去一試。 – Dave

相關問題