Как настроить Tomcat для Clojure, чтобы он мог работать для всех маршрутов? - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь развернуть мое веб-приложение clojure на tomcat, но оно обращается только к первому маршруту.

это мой проект. Clj

(defproject web-app "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
        :url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
             [clj-jgit "0.8.10"]
             [org.clojure/data.json "0.2.6"]
             [clj-yaml "0.4.0"]
             [io.forward/yaml "1.0.9"]
             [hiccup "1.0.5"]
             [compojure "1.6.1"]
             [ring/ring-core "1.6.3"]
             [ring/ring-defaults "0.3.2"]
             [ring/ring-jetty-adapter "1.6.3"]]

:plugins [[lein-uberwar "0.2.0"]]
;;:plugins [[lein-ring "0.12.4"]]

:uberwar {:handler handler.core/app}
;;:ring {:handler handler.core/app}



:main handler.core)

это мой обработчик

(ns handler.core
(:require  [layout.core :as veiw_mapper]
         [web-app.core ]
         [compojure.core :refer :all]
         [compojure.route :as route]
         [ring.adapter.jetty :as jetty]
         [ring.middleware.defaults :refer [wrap-defaults site-defaults]]
         [ring.middleware.resource])
(:gen-class))
(defroutes app-routes
(GET "/" [] (veiw_mapper/index))
(POST "/" [& params] (web-app.core/update-mapper params))
(route/resources "/")
(route/not-found "Not Found"))




(def app
  (wrap-routes app-routes site-defaults))


(defn -main
  [& [port]]
  (let [port (Integer. (or port
                       (System/getenv "PORT")
                       5000))]
  (jetty/run-jetty #'app {:port  port
                        :join? false})))

а это мой файл web.xml на tomcat

<?xml version="1.0" encoding="UTF-8"?>

-<web-app version="2.5" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee">


-<listener>

<listener-class>handler.listener</listener-class>

</listener>


-<servlet>

<servlet-name>handler.core/app servlet</servlet-name>

<servlet-class>handler.servlet</servlet-class>

</servlet>


-<servlet-mapping>

<servlet-name>handler.core/app servlet</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

</web-app>

проблема в том, что когда я пытаюсь запустить это приложение на моем сервере repl, для которого я использую Jetty, он работает нормально, но когда я создаю войну и развертываю ее на сервере Tomcat, только (GET "/" [] (veiw_mapper / index)) выполняет другие маршруты, такие как post, и ресурсы также не загружаются.

Я новичок в Clojure и Tomcat, поэтому понятия не имею, что делать с Clojure или с файлом web.xml.

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