Ответ 1
Я понял, что эта проблема возникает при запуске приложения на локальном dev-сервере. однако, когда я развертываю приложение в приложении. Я вижу страницу ошибки 404, которая была настроена с помощью web.xml. спасибо за вашу помощь.
Привет, я пытаюсь настроить статическую страницу ошибки для 404 не найденных ошибок в движке приложения.
Согласно https://developers.google.com/appengine/docs/java/config/webxml#Error_Handlers: он говорит, что 404 нельзя настроить.
И в соответствии с: https://developers.google.com/appengine/docs/java/config/appconfig#Custom_Error_Responses он, похоже, не поддерживает 404.
Однако https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/3C-pY5ta2HQ кажется, что можно настроить страницу ошибок 404. Я запутался прямо сейчас.
Я понял, что эта проблема возникает при запуске приложения на локальном dev-сервере. однако, когда я развертываю приложение в приложении. Я вижу страницу ошибки 404, которая была настроена с помощью web.xml. спасибо за вашу помощь.
Почему бы вам не использовать Java EE < error-page > запись для этих целей?
в вашем web.xml:
<error-page>
<error-code>404</error-code>
<location>/app/error/404</location>
</error-page>
....
<error-page>
<error-code>500</error-code>
<location>/app/error/500</location>
</error-page>
Вы можете объединить его с Spring и получить общий контроллер ошибок, например:
....
@Controller
public class ErrorController {
@RequestMapping(value = "/error/{errorCode}")
public final String errorCode(
@PathVariable("errorCode") final String errorCode,
final ModelMap modelMap) {
modelMap.put("statusCode", errorCode);
return "redirect:/ui/error.htm";
}
и ваш jsp-подобный файл:
<h2>Error!!!</h2>
....
<h3>Status code: #{param.statusCode}</h3>
Надеюсь, что это поможет.
Вы правы, это в настоящее время недоступно в Java на App Engine. Однако для Python существует обходной путь. Например, вы можете посмотреть GAE Boilerplate.
Надеюсь, что это поможет.
Мне удалось получить 404 ошибки, успешно перенаправленные в SDK версии 1.6.1 и более ранних версий на моем локальном сервере. Однако после обновления до GAE SDK 1.7.5 я не могу заставить его работать локально. С тех пор я прочитал, что он в настоящее время не поддерживается для 404, как указано выше.
В версии движка версии 1.9.48 это работает над облаком:
[web.xml]
<web-app>
...
<error-page>
<error-code>404</error-code>
<location>/static-error.html</location>
</error-page>
</web-app>