Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Arquillian:获取WFLYEE0117:无法在Singleton.START上设置字段_Java_Jboss_Singleton_Jboss Arquillian - Fatal编程技术网

Java Arquillian:获取WFLYEE0117:无法在Singleton.START上设置字段

Java Arquillian:获取WFLYEE0117:无法在Singleton.START上设置字段,java,jboss,singleton,jboss-arquillian,Java,Jboss,Singleton,Jboss Arquillian,我正在尝试运行一个arquillian测试,该测试使用一个映射有@Singleton和@Startup注释的bean,在Singleton中有一些来自infinispan的缓存类型,它们是使用@Resource(lookup=“JNDI”)注入的,该错误只说明无法设置fild 我确信我的测试类中缺少了一些东西,这是来自类和bean的代码 @RunWith(Arquillian.class) 公共类EJBsBeanTest{ 私有静态SimpleDataFormat SDF_YYYYMMDD=新S

我正在尝试运行一个arquillian测试,该测试使用一个映射有@Singleton和@Startup注释的bean,在Singleton中有一些来自infinispan的缓存类型,它们是使用@Resource(lookup=“JNDI”)注入的,该错误只说明无法设置fild

我确信我的测试类中缺少了一些东西,这是来自类和bean的代码

@RunWith(Arquillian.class)
公共类EJBsBeanTest{
私有静态SimpleDataFormat SDF_YYYYMMDD=新SimpleDataFormat(“yyyy-MM-dd”);
私人图书馆;
私人文件;
私有文档o documentoAdmin;
私人文件;
@部署
公共静态存档createTestArchive(){
File[]files=Maven.resolver().loadPomFromFile(“pom.xml”)
.importRuntimeDependencies().resolve().withTransitivity().asFile();
WebArchive myArchive=ShrinkWrap.create(WebArchive.class,“test.war”)
.addClasses(ConfigurationBean.class,…)
.addAsLibraries(文件)
.addasWebInfoResource(“jboss deployment structure.xml”,archivepath.create(“jboss deployment structure.xml”))
.addAsManifestResource(EmptyAsset.INSTANCE,archivepath.create(“META-INF/beans.xml”);
归还我的档案;
}
}
............
@启动
@独生子女
公共类配置bean{
私有静态最终记录器Logger=Logger.getLogger(ConfigurationBean.class.getName());
私有静态属性道具;
私有静态IOException ioerror;
公共静态最终字符串缓存\u RUA\u CEIP=“evaluacionRuaCeip”;
@资源(lookup=“java:jboss/datagrid infinispan/container/backend manager/cache/externos cache”)
私有缓存;
@资源(lookup=“java:jboss/datagrid infinispan/container/shiro container”)
专用缓存容器basicCacheContainer;
@资源(lookup=“java:jboss/datagrid infinispan/container/backend manager/cache/permissapp cache”)
私有缓存缓存许可证;
@施工后
公共void init(){
试一试{
props=新属性();
load(ConfigurationBean.class.getClassLoader().getResourceAsStream(“ftp.properties”);
cachePermisosApp.clear();
cacheExternos.clear();
}捕获(例外情况除外){
logger.log(Level.SEVERE,null,ex);
抛出新的运行时异常(ex);
}
}
公共缓存getCacheExternos(){
返回缓存号;
}
公共属性getProps(){
返回道具;
}
公共缓存容器getBasicCacheContainer(){
返回BasicCache容器;
}
公共缓存getCachePermisosApp(){
返回cachepermissapp;
}
}
这就是错误:

org.jboss.arquillian.container.spi.client.container.DeploymentException:
无法部署test.war:{“WFLYCTL0062:复合操作失败并已回滚。失败的步骤:=>{“操作步骤-1”=>{“WFLYCTL0080:失败的服务”=>{“jboss.deployment.unit.\“test.war\”.component.ConfigurationBean.START“=>”java.lang.IllegalStateException:WFLYEE0042:无法构造组件实例
原因:java.lang.IllegalStateException:WFLYEE0042:构造组件实例失败
原因:javax.ejb.EJBException:java.lang.IllegalArgumentException:WFLYEE0117:Field cacheExternos无法设置-类org.infinispan.cache.impl.EncoderCache的对象由ModuleClassLoader为模块\“org.infinispan.core:ispn-9.4 \”9.4.3.Final从本地模块加载器@7776ab(finder:local Module finder@79179359)加载(root:/jboss/modules、/jboss/modules/system/layers/base、/jboss/modules/system/add-ons/ispn))不可分配给ModuleClassLoader从服务模块加载器为模块\“deployment.test.war\”加载的接口org.infinispan.Cache
原因:java.lang.IllegalArgumentException:WFLYEE0117:无法设置字段cacheExternos-ModuleClassLoader为模块“org.infinispan.core:ispn-9.4\”9.4.3.Final从本地模块加载器@7776ab(查找器:本地模块查找器@79179359)加载的类org.infinispan.cache.impl.EncoderCache的对象(root:/jboss/modules、/jboss/modules/system/layers/base、/jboss/modules/system/add-ons/ispn))不可分配给接口org.infinispan.Cache,该接口由ModuleClassLoader从服务模块加载器“}”为模块\“deployment.test.war\”加载

最后我找到了答案,应用程序在生成的.war中找不到模块org.infinispan.core:ispn-9.4,因此我将模块添加到jboss-deployment-structure.xml文件中,以访问该模块

下面是src/test/resources/jboss-deployment-structure.xml


假的