Мои объекты хранятся в Интернете в двух разных местах:
<1> На моем сайте nmjava.com, где я могу поместить их в каталог с именем "Dir_My_App / Dir_ABC /"
<2> В хранилище данных Google App Engine
Когда мое приложение Java запускается, оно проверяет оба места на предмет наличия объектов. Я спроектировал приложение так, чтобы оно пыталось получить объект из URL-адреса, и ему все равно, является ли это объектом в каталоге или объектом, возвращаемым сервлет.
My_Object Get_Object(String Site_Url,String Object_Path)
{
... get object by the name of Object_Path from the Site_Url ...
}
Теперь URL-адрес запроса для моего веб-сайта nmjava.com может выглядеть следующим образом:
http://nmjava.com/Dir_My_App/Dir_ABC/My_Obj_123 [В каталоге]
Или в случае сервлета Google App Engine:
http://nm -java.appspot.com / Check_License / Dir_My_App / Dir_ABC / My_Obj_123 [Не существует]
"Object_Path" был сгенерирован моим приложением автоматически. Теперь он может получить объект с моего сайта описанным выше способом, например так:
My_Object Get_Object ("http://nmjava.com","/Dir_My_App/Dir_ABC/My_Obj_123");
В Google App Engine мой сервлет работает и готов обслуживать объект, если запрос поступил правильно, но так как я не хочу разрабатывать свое приложение, чтобы знать, находится ли объект в каталоге одного сайта или в хранилище данных другого сайта, мне нужно спроектировать сервлет так, чтобы он перехватывал несуществующий URL, такой как приведенный выше, и мог звонить:
My_Object Get_Object ("http://nm -java.appspot.com / Check_License ", "/ Dir_My_App / Dir_ABC / My_Obj_123");
Поэтому мой вопрос: когда запрос поступает в сервлет с несуществующим URL-адресом, как он должен перехватить его и проанализировать URL-адрес, чтобы правильно ответить, в моем случае он должен знать, что:
http://nm -java.appspot.com / Check_License / Dir_My_App / Dir_ABC / My_Obj_123
запрашивает объект "My_Obj_123" [игнорировать каталоги] и возвращает объект из хранилища данных.
Теперь я получаю это:
Ошибка: не найдена
Запрошенный URL / Check_License / Dir_My_App / Dir_ABC / My_Obj_123 не найден на этом сервере.
Где в моем сервлете и как я могу обнаружить запрос для этого несуществующего URL?