2009-09-04 3 views
6

Maven Tomcat Embedded

mvn tomcat:run 

명령으로 maven을 사용하여 Spring webapp을 실행하려고 시도하지만 http://localhost:8080/myApp로 이동할 때마다 "요청한 리소스()를 사용할 수 없습니다"라는 오류가 발생합니다. 로그에 아무것도 나타나지 않습니다. 내 응용 프로그램은 "/ myApp"대신 "/"에 배포되어야한다고 생각합니다. 이것을 할 수있는 방법이 있습니까?

Maven 출력 로그 :

[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

으로 출력 할 수 있습니까? maven 출력 로그를 게시 할 수 있습니까? – rodrigoap

+0

또는 pom? 아니면 web.xml? 또는 server.xml? – Jherico

+0

잘 보입니다. Tomcat의 로그 파일을 보셨습니까? – rodrigoap

답변

10

maven tomcat plugin에 대한 문서는 여기에서 기본 컨텍스트 경로는 /${artifactId}-${version}-/${project.build.finalName} 자체 기본값입니다 상태.

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

또는, 다른 콘텍스트 경로 명시 플러그인 구성 블록을 추가하여 지정 될 수

컨텍스트 경로를 변경하는 바람직한 방법은 당신의 pom.xml에 다음 추가하여 finalName을 변화시키는 당신의 pom.xml에 다음과 같이

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

당신은 다음 로컬 호스트에로드해야한다, 당신의 치어에 두 요소 중 하나를 정의한 경우 곳 8080 /. 그렇지 않으면 localhost:8080/${artifactId}-${version}

관련 문제