GroovyServlet возвращает 404 на все запросы после успешной загрузки один раз? - PullRequest
4 голосов
/ 22 ноября 2011

У меня есть скрипт Groovy в корне моего веб-приложения, обслуживаемого Tomcat 7.0.22.Сценарий обслуживается GroovyServlet из Groovy 1.8.4.Когда я запускаю приложение через приложение менеджера Tomcat, я могу отправить запрос сценарию и получить обратно 200. Не меняя ничего Я могу отправить второй запрос и получить обратно 404. Каждый запроспосле первого запроса получается 404, пока я не перезапущу приложение.В журнал Catalina.out записывается только:

GroovyServlet Error:  script: '/test.groovy':  Script not found, sending 404.

Как мне 1) решить эту проблему или 2) отладить ее?Я просмотрел исходный код GroovyServlet для любых возможных параметров конфигурации web.xml для отладки, но я не вижу никаких.

Для ясности, веб-каталог моего приложения:

/test.groovy
/WEB-INF/lib/*.jar
/WEB-INF/groovy/classes*.groovy
/WEB-INF/web.xml

Ответы [ 2 ]

1 голос
/ 03 октября 2012

GroovyServlet должен позволять помещать скрипты .groovy в обычный веб-корень веб-приложения или в / WEB-INF / groovy /.Тем не менее, я видел пару раз, когда сценарии не разрешаются, если они находятся в веб-корне.Попробуйте переместить скрипты .groovy в / WEB-INF / groovy / и перезапустите Tomcat.

Это конфигурация, которую я использую для развертывания скриптов groovy как в Tomcat, так и в Google App Engine.Работает нормально с Groovy 1.8.4 - 2.0.1, однако я вижу некоторые проблемы с Groovy 2.0.2, 2.0.4 и 2.0.5, которые не разрешают сценарии, как вы описываете.Я буду продолжать использовать Groovy 2.0.1, пока ошибки GroovyServlet не будут исправлены.

http://groovy.codehaus.org/api/groovy/servlet/GroovyServlet.html

ОБНОВЛЕНИЕ: Ошибка, описанная выше с groovy-скриптами в веб-корне или/ WEB-INF / groovy исправлен в Groovy 2.0.6.

0 голосов
/ 03 декабря 2012

Изменение строки 501/491 в Groovy 1.8.8 / 2.0.2 в groovy / util / GroovyScriptEngine с

String path = conn.getURL().toExternalForm();

на

String path = conn.getURL().getPath();

исправляет проблему для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...