Question

Je travaille sur une simple application web écrite en Clojure, en utilisant le cadre d'applications Web Compojure et Maven.

Ceci est une version simplifiée de mon servlet:

(ns core
  (:use compojure.core ring.util.servlet)
  (:require [compojure.route :as route])
  (:gen-class :extends javax.servlet.http.HttpServlet))

(defroutes main-routes
  (GET "/" _ {:status 302 :headers {"Location" "/about"}})
  (GET "/about" [] "This is the about page")
  (route/not-found "File not found."))

(defservice main-routes)

Cela fonctionne bien en utilisant l'objectif de la jetée Maven comme ceci:

mvn jetty:run

Cependant, quand je construis une guerre de cela et de le déployer sur un Tomcat, je vois toujours ma page 404, à savoir « Fichier introuvable. ». Pouvez-vous me dire pourquoi cela se produit?

Je construire la guerre comme suit:

mvn package

Je remarqué un avertissement dans Tomcat à propos de double servlet-api.jar et Maven ne met en effet dans WEB-INF / lib. Je servlet api.jar retiré de la guerre et encore obtenir le même problème, mais que cela signifie que quelque chose ne va pas avec tout mon processus d'emballage WAR?

Peut-être est-ce un problème avec le chemin d'accès différent URL? Quand je commence une jetée locale, l'URL est la suivante:

http: // localhost: 8080 / home

Mais si je le lance sur un Tomcat, il est comme ceci:

http: // localhost: 8080 / myapp / home

est le « / myapp » peut-être une partie de la route? Comment puis-je aborder ce problème?

Était-ce utile?

La solution

Rechercher exemple suivant - il exécuter à la fois dans tomcat et jetée. Si vous utilisez mvn jetée: course , vous devez également spécifier le préfixe qui sera utilisé (vous pouvez le voir dans pom.xml pour cible de guerre)

Autres conseils

http://wiki.apache.org/tomcat/HowTo :

Si vous utilisez la méthode « guerre » pour déployer votre application:

  • supprimer le répertoire ROOT
  • le nom de votre fichier de guerre "ROOT.war" (majuscules obligatoires)
  • déposez le fichier ROOT.war directement dans le répertoire / webapps répertoire. Tomcat déploiera automatiquement.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top