2014-11-20 4 views
4

로컬 PC에 Netbeans/Glassfish 프로젝트를 배포하려고합니다. 현재 Netbeans/Glassfish - 확장 디렉토리를 찾을 예정이지만 JAR를 찾았습니다

이 프로젝트는 다음 URL에서 발견 문서를 기반으로 엔터프라이즈 응용 프로그램으로 구성 될 것으로 보인다 생산

에서 실행중인 :

https://netbeans.org/kb/docs/javaee/maven-entapp.html#intro

프로젝트는 다음과 같은 5 개 모듈이 있습니다

WI-EAR 
WI-EJB 
WI-Enterprise 
WI-ENT-web 
WE-Web 

위에서 언급 한 자습서에 따르면 Netbeans에서 실행 및 배포하는 데 사용되는 프로젝트는 "-EAR"프로젝트입니다.

Reactor Summary: 

WI-EJB ............................................ SUCCESS [0.723s] 
WI-Enterprise ..................................... SUCCESS [0.004s] 
Wi-LIB ............................................ SUCCESS [0.288s] 
WI-ENT-web ........................................ SUCCESS [3.012s] 
WI-EAR ............................................ SUCCESS [1.520s] 
------------------------------------------------------------------------ 
BUILD SUCCESS 

내가 "대상"에서 생성 된 .ear 파일을 볼 수 있습니다 : 나는 WI-EAR 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 종속성 빌드 선택하면

, 튜토리얼에 따라,이 결과를 얻을 수 디렉토리에 "WI-EAR"이라는 이름으로 저장하십시오.

지금까지 그렇게 좋았습니다. 다음으로, 튜토리얼마다 프로젝트 윈도우에서 EAR 프로젝트 노드를 오른쪽 클릭하고 Run을 선택한다. 이 시점에서

은, 그러나, 글래스 피쉬 콘솔은 다음과 같은 오류가 표시 넷빈즈 내에서 "WE-EAR.ear"파일을 클릭하여

SEVERE: Exception while deploying the app 
java.lang.IllegalArgumentException: Expected to find an expanded directory for submodule WI-EJB-1.0-SNAPSHOT.jar but found a JAR. If this is a directory deployment be sure to expand all submodules. 

을, I "는 사실에 포함 않는 것을 볼 수 있습니다 WI-EJB-1.0-SNAPSHOT.jar "로 확장 된 디렉토리가 있습니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

2

아래의 모듈 섹션을 포함하도록 EAR의 pom.xml을 변경해야합니다. "언팩"명령에 유의하십시오. 종속성 섹션에서 관련 항목

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-ear-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <version>5</version> 
      <modules> 
        <webModule> 
         <groupId>com.mycompany</groupId> 
         <artifactId>WI-ENT-web</artifactId> 
         <unpack>true</unpack> 
         <!--<contextRoot></contextRoot>--> 
        </webModule> 
        <ejbModule> 
         <groupId>com.mycompany</groupId> 
         <artifactId>WI-EJB</artifactId> 
         <unpack>true</unpack> 
        </ejbModule> 
       </modules> 
    </configuration> 
    </plugin> 
</plugins> 

, 유형을 선언해야합니다 - 내 경우에는 문제가 지정한 "EJB"형이 아니라고했다.

<dependencies> 

    <dependency> 
     <groupId>com.mycompany</groupId> 
     <artifactId>WI-ENT-web</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <type>war</type> 
    </dependency> 

    <dependency> 
     <groupId>com.mycompany</groupId> 
     <artifactId>WI-EJB</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <type>ejb</type> 
    </dependency> 

    </dependencies>