2016-09-16 4 views
0

Wildfly에 배포 할 간단한 JAR을 만들려고 시도하지만 배포하려고 할 때마다 많은 ClassNotFoundExceptions이 발생합니다. 내가 가진 만 의존성이다 : 나는 JAR을 위해 사용하고Maven 생성 JAR 파일을 Wildfly에 배포 할 수 없습니다.

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-elasticsearch</artifactId> 
    <version>2.0.2.RELEASE</version> 
</dependency> 

빌드는 다음과 같습니다

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
    <archive> 
    </archive> 
    <failOnMissingWebXml>false</failOnMissingWebXml> 
    <webResources> 
     <resource> 
     <directory>target/classes/META-INF</directory> 
     <targetPath>WEB-INF</targetPath> 
     <includes> 
      <include>jboss-web.xml</include> 
      <include>jboss-deployment-structure.xml</include> 
     </includes> 
     </resource> 
    </webResources> 
    </configuration> 
</plugin> 
: 한편

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.3</version> 
    <executions> 
    <execution> 
     <phase>package</phase> 
     <goals> 
     <goal>shade</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <createDependencyReducedPom>false</createDependencyReducedPom> 
    </configuration> 
</plugin> 

, 나는 전쟁과 같은 프로젝트를 빌드 할 때

모든 것이 잘 동작합니다. 내가 잘못 본 것이 아니라면이 문제는 클래스로드로 인해 발생합니다. 클래스 로딩의 차이점은 무엇이며이를 피하기 위해 무엇을 할 수 있습니까?

+0

CNF 예외는 _spring-data-elasticsearch_ 종속성을 참조합니까? – aribeiro

답변

0

음영 플러그인에서 생성 된 jar를 배포해야합니다. 새로 설치를 완료하면 두 개의 병이 생깁니다. 하나는 소스의 컴파일 된 클래스와 다른 jar (그늘 플러그인으로 생성 될 것입니다)를 가진 일반 항아리입니다. 컴파일 된 클래스와 모든 의존성의 클래스를 모두 가질 수 있습니다. 이것은 서버에 배포해야하는 병입니다. 이 항아리에는 모든 종속 항아리의 클래스가 포함되므로 ClassNotFoundExceptions를 얻을 수 없습니다.

+0

답장을 보내 주셔서 감사합니다. 실제로 두 개의 jar 파일이 생성됩니다. 하나는 접두사가 원래이고 다른 하나는 모든 라이브러리가있는 것입니다. 제가 배포하려고 시도한 라이브러리에있는 것이었고 ClassNotFoundExceptions – Sarpy

관련 문제