2012-01-20 2 views
2

После того, как blobstore обрабатывает запрос на загрузку файла, он перенаправляет его на URL-адрес, в этом случае «/ upload». Если я настрою URL-адрес UploadServlet в файле web.xml следующим образом:Переадресация BlobStore, игнорируемая сервлетами ServletModule, проводными сервлетами

<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 телеграфировать сервлет:

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

Я получаю ошибку:

Problem accessing /upload. Reason:NOT_FOUND 

Кажется, как будто com.google.inject.servlet.ServletModule не обрабатывает редиректы. Есть ли способ обойти это?

ответ

0

Я сам сегодня борюсь с тем же вопросом. Это решило мою проблему и может быть связано:

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

In dev mode, the blobstore service uses RequestDispatcher.forward() rather than an HTTP request:

<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> 

Конечно, может быть слишком поздно для вас, но для других это может помочь :-)

Смежные вопросы