Динамически генерируемые файлы .jsp: ошибка PWC6117 при использовании плагина jetty-maven

Я разрабатываю локально, используя Spring MVC, Maven и плагин jetty-maven-plugin (7.6.2.v20120308).

Я знаю, что некоторые из вас сочтут это плохой идеей, но я автоматически генерирую некоторые файлы .jsp. Например, у меня есть файл dyn.js, который я хочу сделать динамическим, чтобы он содержал код JSTL/EL.

Вкратце вот что я делаю:

  • Если вызывается динамический dyn.js, а версии интерпретируемого кеша еще нет, я перенаправляю запрос на специальный контроллер.

  • Контроллер берет содержимое файла dyn.js и создает файл dyn.js.jsp с этим содержимым в том же каталоге, где находятся другие мои файлы .jsp. Я получаю этот каталог во время выполнения, используя что-то вроде:

    getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "tags"
    
  • После создания файла jsp мой контроллер возвращает путь представления (или ModelAndView), чтобы представление можно было обработать.

  • После окончательного отображения представления я получаю результирующий контент (используя пользовательскую оболочку Response в фильтре) и сохраняю его в файл кеша.

Этот метод отлично работает! Я очень доволен этим.

Единственная проблема в том, что иногда я получаю эту ошибку при попытке создать динамический dyn.js:

Jul 8, 2012 5:15:12 PM org.apache.jasper.servlet.JspServlet _serviceJspFile
SEVERE: PWC6117: File "C:\somepath\src\main\webapp\WEB-INF\tags\dyn.js.jsp" not found

Когда это происходит, делать нечего. Даже если я обновлю страницу, jsp никогда не будет найден, поэтому мой dyn.js не работает. Затем я проверяю, и файл .jsp существует в моей файловой системе (C:\somepath\src\main\webapp\WEB-INF\tags\dyn.js.jsp)!

Эта проблема возникает случайно. Я не могу воспроизвести проблему по желанию. Я бы сказал, что это происходит в 1/5 случаев.

Кажется, что в некоторых ситуациях Jetty не может «видеть» сгенерированный файл .jsp.

Есть идеи, что может вызвать эту проблему и как я могу ее исправить?

ОБНОВЛЕНИЕ: я использую плагин jetty-maven версии 7.6.2.v20120308.


person electrotype    schedule 08.07.2012    source источник


Ответы (2)


Для тех, кто заинтересован, я думаю, что нашел обходной путь. Создание временных файлов .jsp, даже без содержания в них, перед первым запросом, по-видимому, решает проблему.

Итак, когда приложение запускается, у меня есть хук, который создает динамические файлы .jsp с пустым содержимым.

person electrotype    schedule 09.07.2012

Я думаю, что проблема связана с путем к файлу. Когда вы копируете путь на консоли и вставляете его в проводник Windows, вы не можете открыть путь.

person tyler 2durden    schedule 17.10.2013