ManagedExecutorService не найден - PullRequest
       29

ManagedExecutorService не найден

0 голосов
/ 07 сентября 2018

У меня проблема с Аркиллианом и ManagedExecutorService с. Arquillian не может найти значение по умолчанию ManagedExecutorService. Исключение составляет:

Caused by: javax.naming.NameNotFoundException: No object bound to name java:comp/DefaultManagedExecutorService

Я использую IntelliJ и выполняю тест с GlassFish Embedded 3.1 с Arquillian 1.4.0.Final.

Вот мой юнит-тест:

@Slf4j
@RunWith(Arquillian.class)
public class WorkhorseTest {

    @Inject
    private Workhorse workhorse;

    @Deployment
    public static WebArchive createDeployment() {
        return ShrinkWrap.create(WebArchive.class)
                .addClass(Workhorse.class)
                .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
    }

    @Test
    public void testExecution() throws Exception {
        final Future<Integer> result = workhorse.execute();
        result.get(1, TimeUnit.MINUTES);
        log.info("Executed...");
    }
}

Вот EJB:

@Slf4j
@Singleton
public class Workhorse {

    @Resource
    private ManagedExecutorService mes;

    public Future<Integer> execute() {
        return mes.submit(() -> {
            log.info("Hello from a Runnable");
            return 5;
        });
    }


}

Как я могу проверить ManagedExecutorService с Arquillian?

1 Ответ

0 голосов
/ 11 сентября 2018

Я решил это с переключением зависимости в pom.xml:

Old:

<dependency>
    <groupId>org.glassfish.main.extras</groupId>
    <artifactId>glassfish-embedded-web</artifactId>
    <version>5.0</version>
    <scope>provided</scope>
</dependency>

Новое:

<dependency>
    <groupId>org.glassfish.main.extras</groupId>
    <artifactId>glassfish-embedded-all</artifactId>
    <version>5.0</version>
    <scope>provided</scope>
</dependency>
...