2009-09-04 11 views
6

Próbuję uruchomić Wiosna webapp przy użyciu Maven z komendyMaven Tomcat Wbudowany

mvn tomcat:run 

, ale ilekroć przejść do http://localhost:8080/myApp, pojawia się błąd: „Żądany zasób() nie jest dostępny”. Nic nie pojawia się w dziennikach. Myślę, że moja aplikacja powinna zostać wdrożona w "/" zamiast "/ myApp". Czy jest jakiś sposób na zrobienie tego?

Maven dziennika wyjście:

[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

Czy możesz opublikować log wyjścia maven? – rodrigoap

+0

lub pom? Lub web.xml? Lub plik server.xml? – Jherico

+0

Wygląda dobrze dla mnie. Czy przejrzałeś pliki logów Tomcat? – rodrigoap

Odpowiedz

10

Dokumentacja dla maven tomcat plugin tutaj stwierdza Domyślna ścieżka kontekst jest /${project.build.finalName}, która sama domyślnie /${artifactId}-${version}.

Preferowanym sposobem na zmianę ścieżki kontekstu jest zmiana finalName przez dodanie następujących do pom.xml:

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

Alternatywnie, inna ścieżka kontekstu może być określony przez dodanie bloku konfiguracji wtyczki jawne do pom.xml następująco:

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

Jeśli nie zdefiniowano żadnego z tych dwóch elementów w POM, to powinno być ładowanie na localhost: 8080/gdziekolwiek. W przeciwnym razie będzie to localhost:8080/${artifactId}-${version}

Powiązane problemy