2009-09-04 10 views
6

Ich versuche, einen Frühlings-Webapp mit Maven mit demMaven Tomcat Embedded

mvn tomcat:run 

Befehl auszuführen, aber wenn ich zu http://localhost:8080/myApp navigieren, erhalte ich die Fehlermeldung: „Die angeforderte Ressource() nicht verfügbar ist“. Nichts erscheint in den Protokollen. Ich denke, dass meine App auf "/" anstelle von "/ myApp" bereitgestellt werden soll. Gibt es eine Möglichkeit, dies zu tun?

Maven Ausgabeprotokoll:

[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

Kannst du das maven output log posten? – rodrigoap

+0

oder der Pom? Oder die web.xml? Oder die server.xml? – Jherico

+0

Es sieht gut aus für mich. Haben Sie sich die Log-Dateien von Tomcat angesehen? – rodrigoap

Antwort

10

Die Dokumentation für die maven tomcat plugin hier heißt es Der Standardkontextpfad ist /${project.build.finalName}, die sich standardmäßig /${artifactId}-${version}.

Der bevorzugte Weg, den Kontextpfades der Änderung ist es, die finalName ändern Sie folgendes zu Ihrem pom.xml durch Zugabe: kann

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

Alternativ kann ein anderer Kontextpfad durch Hinzufügen eines expliziten Plugin Konfigurationsblock angegeben werden wie zu Ihrer pom.xml folgt:

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

Wenn Sie eine dieser beiden Elemente in Ihrem pom definiert haben, dann sollte es auf localhost geladen werden: 8080/wo auch immer. Sonst ist es unter localhost:8080/${artifactId}-${version}

Verwandte Themen