/ / Webapp работи в Jetty, но не и в Tomcat - пролет, пролет-mvc, пристанище, jstl, tomcat7

Webapp работи в Jetty, но не и в Tomcat - spring, spring-mvc, jetty, jstl, tomcat7

Направих пролетна MVC webapp, в която използвах JSTL тагове. Пуснах го от Gradle и той работи перфектно:

gradle jettyRunWar

Въпреки това, когато използвах същия WAR файл с моя Tomcat, получих грешка:

Абсолютното uri: http://java.sun.com/jsp/jstl/core не може да бъде разрешен нито в web.xml, нито в jar файловете, разположени с това приложение.

Използвайки stackoverflow, успях да поправя. Проблемът беше в моя файл build.gradle, където не посочих JSTL зависимости.

Въпросът ми е защо Jetty е успяла да пусне това приложение, когато Tomcat не е бил. Как бих могъл да избегна този проблем?

Отговори:

1 за отговор № 1

Използване на JSTL Taglibs

Библиотека със стандартни етикети на JavaServer Pages (JSTL) е част от разпределението Jetty и автоматично се поставя върху classpath когато изберете своя аромат JSP, Той също така се включва автоматично в classpath за пристанището на пристанището, което използва Apache JSP двигател от пристан-9.2. Вграждане

Ако използвате пристанище в embedded сценарий и трябва да използвате JSTL, тогава трябва да се уверите, че JSTL бурканите са включени в контейнера classpath - това е classpath който е родител на webapp classpath, Това е ограничение, което произтича от спецификацията Java EE.

Бурканчетата, които ще включите, ще зависят от аромата на JSP, който използвате.

Tomcat никога не е включвал JSTL.

Трябва да сложите jstl и стандартни буркани в WEB-INF/lib