2009-09-04 9 views
6

Je suis en train d'exécuter une webapp de printemps en utilisant maven avec leMaven Tomcat Embarqué

mvn tomcat:run 
commande

, mais chaque fois que je navigue à http://localhost:8080/myApp, je reçois l'erreur: « La ressource demandée() ne sont pas disponibles ». Rien n'apparaît dans les journaux. Je pense que mon application est supposée être déployée dans "/" au lieu de "/ myApp". Y a-t-il un moyen de faire cela?

Maven journal de sortie:

[INFO] Scanning for projects... 
[INFO] Searching repository for plugin with prefix: 'tomcat'. 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building myApp 
[INFO] task-segment: [tomcat:run] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Preparing tomcat:run 
[INFO] [resources:resources {execution: default-resources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 4 resources 
Downloading: http://svn.asdf.com:8081/artifactory/repo/org/postgresql/postgresql/8.3/postgresql-8.3.pom 
[INFO] Unable to find resource 'org.postgresql:postgresql:pom:8.3' in repository central (http://repo1.maven.org/maven2) 
Downloading: http://svn.asdf.com:8081/artifactory/repo/java-memcached/java-memcached/1.6/java-memcached-1.6.pom 
[INFO] Unable to find resource 'java-memcached:java-memcached:pom:1.6' in repository central (http://repo1.maven.org/maven2) 
[INFO] [compiler:compile {execution: default-compile}] 
[INFO] Nothing to compile - all classes are up to date 
[INFO] [tomcat:run {execution: default-cli}] 
[INFO] Running war on http://localhost:8080/myApp 
[INFO] Using existing Tomcat server configuration at C:\cygwin\home\workspace\myApp\target\tomcat 
Sep 4, 2009 3:17:29 PM org.apache.catalina.startup.Embedded start 
INFO: Starting tomcat server 
Sep 4, 2009 3:17:29 PM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.16 
Sep 4, 2009 3:17:30 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly. 
Sep 4, 2009 3:17:31 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring FrameworkServlet 'myApp' 
Sep 4, 2009 3:17:31 PM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
Sep 4, 2009 3:17:31 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 

Web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?> 

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

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
       /WEB-INF/applicationContext.xml 
     </param-value> 
    </context-param> 

    <servlet> 
     <servlet-name>context</servlet-name> 
     <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet> 
     <servlet-name>myApp</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>3</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>myApp</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

</web-app> 
+0

Pouvez-vous publier le journal de sortie maven? – rodrigoap

+0

ou le pom? Ou le web.xml? Ou le server.xml? – Jherico

+0

Ça me va bien. Avez-vous regardé les fichiers journaux de Tomcat? – rodrigoap

Répondre

10

La documentation de l'maven tomcat plugin indique ici Le chemin de contexte par défaut est /${project.build.finalName}, qui se /${artifactId}-${version} par défaut.

La meilleure façon de changer le chemin de contexte est de changer le finalName en ajoutant ce qui suit à votre pom.xml:

<build> 
     <finalName>mycontext</finalName> 
</build> 

Alternativement, un chemin de contexte différent peut être spécifié en ajoutant un bloc de configuration du plugin explicite à votre pom.xml comme suit:

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>tomcat-maven-plugin</artifactId> 
     <configuration> 
       <path>/mycontext</path> 
     </configuration> 
</plugin> 

Si vous avez défini une ou l'autre de ces deux éléments dans votre pom, il devrait être à charger localhost: 8080/où. Sinon, il sera à localhost:8080/${artifactId}-${version}

Questions connexes