0
현재 Arquillian과의 통합 테스트를하고 있습니다. 이제 이상한 문제에 봉착했습니다.Shrinkwrap addAsLibrary() 잘못된 경로에 라이브러리 추가
.war 아카이브가 있고 .jar 라이브러리를 추가하려고합니다. myWar.addAsLibrary (myJar)를 사용하여이 작업을 수행합니다.
myWar.addAsLibrary(new File("/home/metalhamster/myJar.jar"),
new BasicPath("/WEB-INF/lib/myJar.jar"));
: 그러나,이 같은 myjar 인이 다음
myWar
\_ WEB-INF/lib/WEB-INF/lib/myJar.jar
대신
myWar
\_ WEB-INF/lib/myJar.jar
에 위치해 나는 파일 시스템에 항아리를 수출하고 다음과 같이 추가합니다 해결 방법을 만들어
누구에게 문제가 있는지 알 수 있습니까? ShrinkWrap의 버그일까요?
편집 :
내가 시도하는 것 :
// load original war
WebArchive myWar = ShrinkWrap.createFromZipFile(WebArchive.class, new File("../wgmdb-web/build/wgmdb-web.war"));
// extract jar from war
JavaArchive myJar = myWar.getAsType(JavaArchive.class, new BasicPath("/WEB-INF/lib/wgmdb-business.jar"));
/*
* modify the jar
*/
// replace the jar with the modified version
myWar.delete(new BasicPath("/WEB-INF/lib/wgmdb-business.jar"));
myWar.addAsLibrary(myJar);
해결 방법 :
// export jar to file system
new ZipExporterImpl(myJar).exportTo(new File("/home/metalhamster/wgmdb/wgmdb-business.jar");
// load it again and add it to the war
war.addAsLibrary(new File("/home/metalhamster/wgmdb/wgmdb-business.jar"),
new BasicPath("/WEB-INF/lib/wgmdb-business.jar"));
건배 metalhamster
당신이 당신의 실제 쉬 링크 랩 코드 예제를 공유 할 수 있을까요? –
내 질문을 편집했습니다. – metalhamster
동의합니다. 이는 예상 된 동작이 아닙니다. https://issues.jboss.org/browse/SHRINKWRAP에서 문제를보고 하시겠습니까? 더 나은 해결 방법은 war.add (myJar, ArchivePaths.create ("/"), ZipExporter.class)를 사용하여 파일 시스템으로의 내보내기를 방지하는 것입니다. –