2011-01-18 2 views
2

두 개의 일반 라이브러리가있는 EAR이 있습니다. 그 중 하나는 스칼라 라이브러리입니다. Netbeans와 함께 EAR을 배포하면 예상대로 작동합니다. 이것은 개발 용으로 적합하지만 최종 제품은 명령 줄을 통해 배포 가능해야합니다. 이를 위해 내가 사용Java EE 6/Glassfish 3.x를 사용하여 라이브러리를 배포하는 방법

org.glassfish.api.admin.CommandException: remote failure: Error occurred during deployment: Exception while deploying the app […-ear] : C:\Work\Workspa 
ces\…\Glassfish\…\applications\scala-library-2.8.0.jar. Please see server.log for more details. 
Befehl deploy fehlgeschlagen. 

내가 처리 라이브러리는 자바 EE 6/글래스 피시 3.x를 더 엄격하게 한 것을 발견 인터넷을 검색하고 아니라고 : 실패

asadmin --user … deploy --upload ./target/…-ear.ear 

더 이상 귀 내부의 lib 폴더에 추가 할 수 있습니다. 저자는 지금 필요한 것을 언급하는 것을 게을리했다.

은 내가 META-INF\application.xml 새로운 <module><java> 항목을 발견 -하지만 그 중 하나가 도움이되지 않았다 :

<module> 
    <java>scala-library-2.8.0.jar</java> 
    </module> 

그래서 질문 : 누군가가 당신이 자바 EE 6에 대한 EAR 파일에 라이브러리를 추가 할 필요가 무엇을 알고 있나요/글래스 피쉬 3.x?

추신 : 빌드 할 때 메이븐을 사용합니다. 차이가 있다면.

답변

3

글쎄, 나는 해결책을 찾은 것 같다. META-INF\application.xml 배포의library-directory 항목을 추가 한 후 그대를 실행합니다

<library-directory>lib</library-directory> 
</application> 

이상한 것은 그 liblibrary-directory의 기본이다. 그래서 글래스 피쉬 자체의 버그가 기본값을 올바르게 처리하지 못하는 것 같아요. Maven을 사용하는 경우 pom.xmlbundleDir을 사용하여 lib가 올바른 위치에 배치되도록하십시오.

 <jarModule> 
      <groupId>org.scala-lang</groupId> 
      <artifactId>scala-library</artifactId> 
      <bundleDir>lib</bundleDir> 
     </jarModule>