Google App Engine - служба магазина BLOB-объектов с сервлетом-диспетчером - PullRequest
0 голосов
/ 13 апреля 2010

У меня есть сервлет центрального диспетчера, который имеет отображение сервлета:

<отображение сервлетов>
диспетчер <имя сервлета /> <сервлет-имя>
/ </ URL-шаблон>
</ Сервлет-отображение>

Когда я пытаюсь использовать метод createUploadUrl службы хранилища больших двоичных объектов ("/ uploadComplete"), он сопоставляется с URL-адресом, например:

Перед тем, как служба хранилища BLOB-объектов сможет обработать загрузку и перенаправить на / uploadComplete; Мой сервлет-диспетчер вызван, и поэтому я не могу загрузить что-либо.

Есть ли в моем файле web.xml сервлет / фильтр, который я могу сопоставить с / _ ah / upload / *?

Как избежать вызова сервлета-диспетчера до того, как служба хранилища BLOB-объектов сможет это сделать?

Ответы [ 3 ]

1 голос
/ 15 апреля 2010

URL-адреса в / _ah / зарезервированы App Engine и будут направлены в соответствующую подсистему независимо от того, что говорит ваш конфиг. С чего вы взяли, что запросы отправляются на ваш обработчик, а не на хранилище блобов?

1 голос
/ 13 апреля 2010

Вы пробовали сопоставить свой uploadComplete сервлет?
Я бы добавил отображение как:

 <servlet>
  <servlet-name>UploadComplete</servlet-name>
  <servlet-class>com.Rahul.test.UploadComplete</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>UploadComplete</servlet-name>
  <url-pattern>/uploadComplete</url-pattern>
 </servlet-mapping>

как раз перед вашим отображением

<servlet-mapping>
 <servlet-name>dispatcher</servlet-name>
 <url-pattern>/</url-pattern>
</servlet-mapping>
0 голосов
/ 16 апреля 2010

При дальнейшем исследовании я определил, что вызывается обработчик, однако запрос не переписывается в "/ uploadComplete" на DevAppServer.

BLOB-объекты загружаются в хранилище BLOB-объектов, но перенаправленный запрос от службы Blobstore гласит /_ah/upload/...*, что является недействительным URL-адресом для моего конца веб-приложения.

Спасибо за все ваши ответы.

...