2 回答

TA貢獻1793條經驗 獲得超6個贊
您找到的解決方案效果很好,所以只是為了完整性。
基本上你需要添加beans.xml
這將啟用你的選擇。EmptyAsset.INSTANCE
將導致空的 beans.xml 在這種情況下不會削減它。
但是,在您的解決方案中,beans.xml
放置在您之下的src/test/webapp/WEB-INF/beans.xml
什么都不做。如果要利用現有beans.xml
文件,可以使用:
addAsManifestResource(File resource, String target)
其中添加File
了名稱為target
addAsManifestResource(Package resourcePackage, String resourceName, String target)
它允許您僅指定文件所在的包,然后是它的名稱和文件,您希望在部署中使用它的名稱

TA貢獻1869條經驗 獲得超4個贊
問題似乎出在.addAsManifestResource論據上。我必須使用StringAssetArquillian 將添加到 beans.xml 的替代方案,而不是空實例。
這是createDeployment()現在的方法:
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class)
.addClasses(Repository.class, UserService.class, UTRepository.class)
.addAsManifestResource(new StringAsset("<alternatives><class>org.package.name.repositories.UTRepository</class></alternatives>"), "beans.xml");
}
添加回答
舉報