Я работаю с веб-приложением Clojure на основе Compojure в IntelliJ, используя Maven в качестве менеджера зависимостей.Он основан на приложении, которое я нашел в этом git хранилище, на которое ссылается этот пример.Когда я пытаюсь запустить приложение с использованием конфигурации IntelliJ Tomcat6, оно каждый раз завершается с ошибкой, ссылаясь на исключение сервлета:
javax.servlet.ServletException: Wrapper cannot find servlet class tracker.core or a class it depends on
Кроме того, при просмотре файла web.xml IntelliJ не распознает класс сервлета (средство отслеживания).core выделено).
Небольшая предыстория:
Это приложение изначально было создано как подтверждение концепции для клиента и написано моим коллегой, который недавно покинул компанию.У меня лично нет опыта работы с clojure, кроме работы над этим проектом в течение последних двух дней.Используя кольцевой сервер Leiningen, я могу успешно заставить приложение работать на пристани.Используя leiningen ring uberwar, получающаяся в результате война успешно развертывается и запускается в tomcat.
Исходная файловая структура выглядит следующим образом:
/tracker-webapp
/classes
/lib
/resources
/src
/tracker
/core.clj (and other *.clj files)
/test
project.clj
Новая структура файлов mavenized теперь отражает пример из ранееупомянутое репозиторий git:
/tracker-webapp
/src
/main
/clojure
/tracker
/core.clj (and other *.clj files)
/webapp
/WEB-INF
/web.xml
/pom.xml
Мой web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Simple Clojure WebApp</display-name>
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>tracker.core</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Другие ресурсы
Я собирался опубликовать другие ресурсы, на которые я смотрел вэтот раздел, но так как я новичок в стеке, я получаю только две ссылки: /