【问题标题】:BlobStore Redirects being ignored by ServletModule wired servletsBlobStore 重定向被 ServletModule 连接的 servlet 忽略
【发布时间】:2026-02-14 10:00:01
【问题描述】:

在 blobstore 处理文件的上传请求后,它会重定向到给定的 url,在本例中为“/upload”。如果我像这样在 web.xml 中配置 UploadServlet url:

<servlet>
   <servlet-name>uploadServlet</servlet-name>
   <servlet-class>com.....servlet.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>uploadServlet</servlet-name>
   <url-pattern>/upload</url-pattern>
</servlet-mapping>

它有效。如果我使用 Guice 连接 servlet:

serve("/upload").with(UploadServlet.class);

我得到错误:

Problem accessing /upload. Reason:NOT_FOUND

似乎 com.google.inject.servlet.ServletModule 不处理重定向。有没有办法解决这个问题?

【问题讨论】:

    标签: google-app-engine redirect blobstore


    【解决方案1】:

    我今天自己也遇到过同样的问题。这解决了我的问题,可能是相关的:

    https://groups.google.com/forum/#!topic/google-appengine-java/oqfvEmZGrdw

    在开发模式下,blobstore 服务使用 RequestDispatcher.forward() 而不是 HTTP 请求:

        <filter-mapping> 
                <filter-name>guiceFilter</filter-name> 
                <url-pattern>/*</url-pattern> 
                <dispatcher>REQUEST</dispatcher> 
        </filter-mapping> 
    
        <filter-mapping> 
                <filter-name>guiceFilter</filter-name> 
                <url-pattern>/*</url-pattern> 
                <dispatcher>FORWARD</dispatcher> 
        </filter-mapping> 
    

    当然,对你来说可能为时已晚,但对其他人可能会有所帮助:-)

    【讨论】: