我的wildfly服务器在添加行
后没有运行@Resource private SessionContext sessionContext;
如何使用wildfly 8.2版本在嵌入式arquillian中注入会话上下文??? 我甚至尝试添加行
.addAsWebInfResource(新文件(“D:\ wildfly-.2.0.Final \ domain \ configuration \ domain.xml”)) 提到我的wildfly服务器的domain.xml,我有crated用户。但又无法启动服务器。此外,当我删除注入SessionContext的行时,我的服务器正常启动。
@RunWith(Arquillian.class)
public class CRLManagerTest {
private static final Logger LOGGER = LoggerFactory.getLogger(CRLManagerTest.class);
@Deployment
public static WebArchive createDeployment() {
WebArchive webArchive = ShrinkWrap.create(WebArchive.class, "test.war")
.addClass(CrManagerFacade1.class)
.addClass(SessionContext.class)
.addClass(CrManagerFacade.class)
.addClass(CrManager.class)
.addAsResource("META-INF/persistence.xml", "META-INF/persistence.xml")
.addAsWebInfResource(new File("D:\\wildfly-.2.0.Final\\domain\\configuration\\domain.xml"))
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml") .addAsManifestResource("META-INF/persistence.xml", "persistence.xml") .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
;
return webArchive;
}
@Resource
private SessionContext sessionContext;
@Test
public void testUpdateReceipt1() throws Exception {
LOGGER.info(">>>>>>>>>>>>> This is a test");
Assert.assertEquals("hello","hello");
}
这是我的arquillian.xml
<container qualifier="jboss-managed" default="true">
<configuration>
<property name="jbossHome">${jbossHome}</property>
</configuration>
</container>
答案 0 :(得分:0)
看起来你并没有使用Servlet协议,所以Arquillian没有做一个http请求,这意味着什么都不依赖于servlet或者Request / Session中的任何东西都可用。 Wildfly默认不使用servlet协议,因此您需要启用它。
将此添加到您的arquillian.xml:
<!-- Sets the protocol which is how Arquillian talks and executes the tests inside the container -->
<defaultProtocol type="Servlet 3.0" />
这是你的pom.xml:
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
<artifactId>arquillian-protocol-servlet</artifactId>
<scope>test</scope>
</dependency>
答案 1 :(得分:0)
正确答案是将classess添加到ShrinkWrat.create方法。
.addClasses(CRLManagerTest.class,CrManagerFacade.class, CrManager.class)