Servlet模块有线servlet忽略Blob存储重定向



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似乎不处理重定向。有办法绕过这个吗?

我今天也遇到过同样的问题。这解决了我的问题,可能与有关

https://groups.google.com/forum/#!主题/谷歌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> 

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

最新更新