2012-04-19 2 views
2

웹 응용 프로그램을 tomcat 6에 수동으로 배포하면 모든 것이 작동합니다. 그러나 maven6-tomcat-plugin을 사용하여 동일한 작업을 시도하면 배포되지 않습니다. 호스트 오류 (catalina.out 로그 파일에서) 어떤 의미가 없습니다 중 하나, 다음과maven 플러그인을 사용하여 tomcat에 war를 배치 할 수 없습니다.

  1. 정보 : validateJarFile (은/var/lib 디렉토리/tomcat6/웹 어플리케이션/spring_sec/WEB-INF/lib 디렉토리/서블릿을 -api-2.5.jar) - jar가로드되지 않았습니다. 이것은 단순히 사실이 아닙니다. 전쟁 파일의 압축을 풉니 다. 그리고 그 파일은 분명히 존재한다.

  2. SEVERE : 명명 컨텍스트를 만들지 못했습니다. javax.naming.NamingException : 컨텍스트가 읽기 전용입니다.

  3. 심각도 : 웹 응용 프로그램 아카이브 배포 중 오류가 발생했습니다. spring_sec.war java.lang.NoClassDefFoundError : org/springframework/beans/factory/Aware. 또 다른 진실한 진술. war 패키지를 압축 해제 한 후 원하는 클래스가 포함 된 WEB-INF/lib/spring-beans-3.1.1.RELEASE.jar 파일을 찾았습니다.

은 수동으로 바람둥이 전쟁 파일을 배포하고 받는다는 플러그인을 사용하기 위해 동일한 것입니까?

MVN tomcat6 명령에 대한 메이븐 출력 :

[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building SpringSec 0.1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] >>> tomcat6-maven-plugin:2.0-beta-1:deploy (default-cli) @ spring_sec >>> 
[INFO] 
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ spring_sec --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /media/winchester/spring_sec/src/main/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ spring_sec --- 
[INFO] Compiling 1 source file to /media/winchester/spring_sec/target/classes 
[INFO] 
[INFO] --- maven-resources-plugin:2.3:testResources (default-testResources) @ spring_sec --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /media/winchester/spring_sec/src/test/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ spring_sec --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ spring_sec --- 
[INFO] No tests to run. 
[INFO] Surefire report directory: /media/winchester/spring_sec/target/surefire-reports 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[INFO] 
[INFO] --- maven-war-plugin:2.2:war (default-war) @ spring_sec --- 
[INFO] Packaging webapp 
[INFO] Assembling webapp [spring_sec] in [/media/winchester/spring_sec/target/spring_sec-0.1.0-SNAPSHOT] 
[INFO] Processing war project 
[INFO] Copying webapp resources [/media/winchester/spring_sec/src/main/webapp] 
[INFO] Webapp assembled in [40 msecs] 
[INFO] Building war: /media/winchester/spring_sec/target/spring_sec-0.1.0-SNAPSHOT.war 
[INFO] WEB-INF/web.xml already added, skipping 
[INFO] 
[INFO] <<< tomcat6-maven-plugin:2.0-beta-1:deploy (default-cli) @ spring_sec <<< 
[INFO] 
[INFO] --- tomcat6-maven-plugin:2.0-beta-1:deploy (default-cli) @ spring_sec --- 
[INFO] Deploying war to ***:8080/spring_sec 
Uploading: ***:8080/manager/html/deploy?path=%2Fspring_sec 
3211/3211 KB 
Uploaded: ***:8080/manager/html/deploy?path=%2Fspring_sec (3211 KB at 50171.2 KB/sec) 
[INFO] FAIL - Failed to deploy application at context path /spring_sec 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 4.280s 
[INFO] Finished at: Thu Apr 19 22:07:39 EEST 2012 
[INFO] Final Memory: 15M/144M 
[INFO] ------------------------------------------------------------------------ 

** 메이븐 POM : 깨끗한 MVN 후 배포 **

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.denarced</groupId> 
    <artifactId>spring_sec</artifactId> 
    <version>0.1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>SpringSec</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.2</version> 
     </plugin> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
     </configuration> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat6-maven-plugin</artifactId> 
     <version>2.0-beta-1</version> 
     <configuration> 
      <server>lapserver</server> 
      <url>http://192.168.11.7:8080/manager/html</url> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

답변

2
  1. 톰캣 서블릿-API를로드 할 수 없습니다 .jar이 Tomcat의 핵심 부분이므로 ($ TOMCAT_HOME/lib 폴더에 이미 있음)이 'info'문은 Tomcat이 jar 파일을 무시했다는 것을 알려주고 있습니다

  2. 수동으로 배포하면 제대로 작동한다고 말하면 무엇을 의미합니까? 수동으로 war 파일을 $ TOMCAT_HOME/webapps 폴더에 두거나 관리자 웹 응용 프로그램을 사용하고 전개 페이지에 전쟁을 업로드하고 있습니까? 관리자 응용 프로그램을 통해 '수동으로 배포'할 수 있는지 확인할 수 있습니까? (maven-tomcat6- 플러그인이 포장하고있는 내용입니다.) - warapp 파일을 게시하여 관리자 webapp에 PUT을 보내고

  3. 언팩 된 것을 확인할 수 있습니까? 전쟁 파일 ($에서 TOMCAT_HOME/webapps에/spring_sec/WEB-INF/lib 디렉토리) 봄 콩 - 3.1.1.RELEASE.jar

+0

2. 예,/manager/html webapp을 사용하여 파일을 업로드한다는 의미입니다. – denarced

+0

3. 그렇습니다. 스프링 콩 항아리는 서버쪽에 있다고 가정되지만 꼬임이 있습니다. 수동 업로드 및 메이븐 플러그인이 다른 방식으로 작동하는 것으로 보입니다. 수동 방법은 버전 번호를 보존하므로 플러그인에서 spring_sec 만 사용하는 경우 수동으로 파일 및 디렉토리 이름에 -0.1.0-SNAPSHOT 부분을 추가합니다. 그리고 두 번째 및 더 중요한 발견, 플러그인은 어떤 이유로 오래된 구성 요소를 사용합니다. 모든 스프링 구성 요소는 3.0.6이며 이는 분명히 계획이 아닙니다. – denarced

0

문제가 필수적 크리스 화이트의 도움으로 해결되었습니다 포함되어 있습니다. Tomcat은 이전 버전의 Spring 구성 요소로 만들어진 webapp의 일부 노인 버전을 보유하고있는 것으로 보입니다. Tomcat을 종료하고 패키지 및 패키지되지 않은 웹 응용 프로그램 파일을 수동으로 삭제 한 후 maven을 통해 다시 배포 할 수있었습니다. 플러그인.

+3

어쩌면 당신은 수정을위한 크레딧을주기 위해 크리스 화이트의 대답을이 경우 받아 들여야 할 것입니다 ... – nwinkler

관련 문제