2015-12-01 6 views
0

Моего wildfly сервера не работает после добавления строкиКак Inject SessionContext в arquillian встроенного контейнера для wildfly 8,2

@Resource частного SessionContext SessionContext;

Как ввести контекст сеанса в встроенный arquillian с wildfly 8.2 version ??? Я даже попытался добавить строку

.addAsWebInfResource (новый файл ("D: \ wildfly-.2.0.Final \ домен \ конфигурации \ domain.xml")) упоминая domain.xml моего wildfly сервер, на котором я разбил пользователей. но снова не смог запустить сервер. Также, когда я удаляю строку ввода 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

Правильный ответ добавить classess методу ShrinkWrat.create.

.addClasses (CRLManagerTest.class, CrManagerFacade.class, CrManager.class)

0

Похоже, вы не используете протокол Servlet, поэтому Arquillian не делает запрос HTTP, который будет означать, ничего, что полагается на сервлет или что-либо в запросе/сеансе, будет доступно. Wildfly не использует протокол сервлета по умолчанию, поэтому вам нужно включить его.

Добавьте это в 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>