2011-08-28 54 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

相关问题