java.lang.RuntimeException: Could not inject members em teste de modulo EJB dentro de um EAR com arquillian

Olá Pessoal

Estou começando a usar o fórum agora, procurei em vários post mas não consegui achar uma solucão. Estou utilizando arquillian e wildfly para fazer testes em uma aplicação mas agora não consigo fazer rodar nem por reza brava um teste de um módulo EJB dentro de um EAR. Em outro projeto com somente o WAR o teste roda de boa.

O teste retorna o seguinte:

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 8.111 sec <<< FAILURE!
run(br.com.diego.wms.service.test.ColecaoRegistrationTest) Time elapsed: 0.429 sec <<< ERROR!
java.lang.RuntimeException: Could not inject members
at deployment.test.ear//org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:117)
at deployment.test.ear//org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.enrich(CDIInjectionEnricher.java:71)
at deployment.test.ear//org.jboss.arquillian.test.impl.TestInstanceEnricher.enrich(TestInstanceEnricher.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
at deployment.test.ear//org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:69)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
at deployment.test.ear//org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:83)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
at deployment.test.ear//org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:116)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
at deployment.test.ear//org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
at deployment.test.ear//org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
at deployment.test.ear//org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.before(EventTestRunnerAdaptor.java:115)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:200)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:350)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:54)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:215)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian$7$1.invoke(Arquillian.java:279)
at deployment.test.ear//org.jboss.arquillian.container.test.impl.execution.BeforeLifecycleEventExecuter.on(BeforeLifecycleEventExecuter.java:34)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
at deployment.test.ear//org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:69)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
at deployment.test.ear//org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:83)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
at deployment.test.ear//org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:116)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at deployment.test.ear//org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at deployment.test.ear//org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
at deployment.test.ear//org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
at deployment.test.ear//org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
at deployment.test.ear//org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.fireCustomLifecycle(EventTestRunnerAdaptor.java:159)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian$7.evaluate(Arquillian.java:273)
at deployment.test.ear//org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at deployment.test.ear//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at deployment.test.ear//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at deployment.test.ear//org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at deployment.test.ear//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at deployment.test.ear//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at deployment.test.ear//org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at deployment.test.ear//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:166)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:350)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:54)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:177)
at deployment.test.ear//org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at deployment.test.ear//org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:115)
at deployment.test.ear//org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at deployment.test.ear//org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at deployment.test.ear//org.jboss.arquillian.junit.container.JUnitTestRunner.execute(JUnitTestRunner.java:61)
at deployment.test.ear.test.war//org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.executeTest(ServletTestRunner.java:139)
at deployment.test.ear.test.war//org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.execute(ServletTestRunner.java:117)
at deployment.test.ear.test.war//org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.doGet(ServletTestRunner.java:86)
at javax.servlet.api//javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.api//javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
at io.undertow.servlet//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:67)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.core@2.0.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.core@2.0.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.core@2.0.0.Final//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.core@2.0.0.Final//io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet//io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.core@2.0.0.Final//io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.core@2.0.0.Final//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.core@2.0.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.core@2.0.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
at io.undertow.core@2.0.0.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
at io.undertow.servlet//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
at org.wildfly.extension.undertow//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
at io.undertow.core@2.0.0.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:360)
at io.undertow.core@2.0.0.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
at org.jboss.threads@2.3.1.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.3.1.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at org.jboss.threads@2.3.1.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at org.jboss.threads@2.3.1.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.IllegalArgumentException: WFLYWELD0044: Error injecting resource into CDI managed bean. Can’t find a resource named java:comp/env/br.com.diego.wms.service.test.ColecaoRegistrationTest/colecaoRegistration
at org.jboss.as.weld.ejb//org.jboss.as.weld.services.bootstrap.WeldEjbInjectionServices.doLookup(WeldEjbInjectionServices.java:249)
at org.jboss.as.weld.ejb//org.jboss.as.weld.services.bootstrap.WeldEjbInjectionServices$2.createResource(WeldEjbInjectionServices.java:123)
at org.jboss.weld.core//org.jboss.weld.injection.AbstractResourceInjection.getResourceReference(AbstractResourceInjection.java:49)
at org.jboss.weld.core//org.jboss.weld.injection.AbstractResourceInjection.injectResourceReference(AbstractResourceInjection.java:63)
at org.jboss.weld.core//org.jboss.weld.util.Beans.injectEEFields(Beans.java:308)
at org.jboss.weld.core//org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:68)
at org.jboss.weld.core//org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
at org.jboss.weld.core//org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:71)
at org.jboss.weld.core//org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:117)
at deployment.test.ear//org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectNonContextualInstance(CDIInjectionEnricher.java:126)
at deployment.test.ear//org.jboss.arquillian.testenricher.cdi.CDIInjectionEnricher.injectClass(CDIInjectionEnricher.java:110)
… 135 more
Caused by: javax.naming.NameNotFoundException: env/br.com.diego.wms.service.test.ColecaoRegistrationTest/colecaoRegistration – service jboss.naming.context.java.module.test.“test.war”.env.“br.com.diego.wms.service.test.ColecaoRegistrationTest”.colecaoRegistration
at org.jboss.as.naming//org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:106)
at org.jboss.as.naming//org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207)
at org.jboss.as.naming//org.jboss.as.naming.NamingContext.lookup(NamingContext.java:184)
at org.jboss.as.naming//org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:239)
at org.jboss.as.naming//org.jboss.as.naming.NamingContext.lookup(NamingContext.java:193)
at org.jboss.as.naming//org.jboss.as.naming.NamingContext.lookup(NamingContext.java:189)
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)
at org.jboss.as.weld.ejb//org.jboss.as.weld.services.bootstrap.WeldEjbInjectionServices.doLookup(WeldEjbInjectionServices.java:247)
… 145 more

Results :

Tests in error:
run(br.com.diego.wms.service.test.ColecaoRegistrationTest): Could not inject members

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] wms … SUCCESS [ 0.002 s]
[INFO] core … FAILURE [ 15.340 s]
[INFO] web … SKIPPED
[INFO] app … SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

Essa é a classe que roda os testes:

@RunWith(Arquillian.class) public class ColecaoRegistrationTest {
@Deployment
public static Archive<?> createTestArchive() {
    Map<String, String> jarName = new HashMap<>();
    jarName.put(JavaArchive.class.getName(), "test.jar");

    String earName = "test.ear";

    JavaArchive ejb = TestUtils.createBasicJar(jarName.get(JavaArchive.class.getName()), ColecaoRegistrationRemote.class, Colecao.class, Resources.class);
    JavaArchive test = TestUtils.createBasicJar(ColecaoRegistrationTest.class);

    EnterpriseArchive enterpriseArchive = ShrinkWrap.create(EnterpriseArchive.class, earName);

    return enterpriseArchive
            .addAsModule(ejb)
            .addAsLibrary(test)
            .addAsManifestResource(TestUtils.createApplicationXml(earName, jarName), "application.xml");
}

@EJB
ColecaoRegistrationRemote colecaoRegistration;

@Test
public void run(){

    assertNotNull(colecaoRegistration);

    Colecao colecao = new Colecao();
    colecao.setDescricao("Primavera/Verão 2019");
    colecao.setReferencia("13");

    try {
        colecao = colecaoRegistration.register(colecao);
    } catch (Exception e) {
        e.printStackTrace();
    }

    assertNotNull(colecao.getIdcolecao());
}

}

Utilizo as clases TestUtils para gerar os Jar ou Wars para os testes bem como o descritor da aplicação

public class TestUtils {
public static JavaArchive createBasicJar(String jarName, Class… clazz){
return ShrinkWrap.create(JavaArchive.class, jarName)
.addPackages(false, getCorePackages(clazz))
.addAsManifestResource(EmptyAsset.INSTANCE, “beans.xml”)
.addAsResource(“META-INF/test-persistence.xml”, “META-INF/persistence.xml”);
}

public static JavaArchive createBasicJar(Class... clazz){
    return ShrinkWrap.create(JavaArchive.class)
            .addPackages(false, getCorePackages(clazz))
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
            .addAsResource("META-INF/test-persistence.xml", "META-INF/persistence.xml");
}

public static WebArchive createWebApp(Class... clazz){
    return ShrinkWrap.create(WebArchive.class)
            .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
            .addPackages(false, getCorePackages(clazz));
}

public static WebArchive createWebApp(String jarName, Class... clazz){
    return ShrinkWrap.create(WebArchive.class, jarName)
            .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
            .addPackages(false, getCorePackages(clazz));
}

private static Package[] getCorePackages(Class[] clazz) {
    List<Package> classList = new ArrayList<>();

    for (Class c : clazz) {
        classList.add(c.getPackage());
    }

    Package[] packages = classList.toArray(new Package[0]);

    return packages;
}

public static StringAsset createApplicationXml(String earName, Map<String, String> modules) {
    ApplicationDescriptor applicationDescriptor = Descriptors.create(ApplicationDescriptor.class)
            .version("6").displayName(earName);

    for (Map.Entry<String, String> entry : modules.entrySet()){
        if(entry.getKey() == WebArchive.class.getName()) applicationDescriptor.webModule(entry.getValue(), "web");
        if(entry.getKey() == JavaArchive.class.getName()) applicationDescriptor.ejbModule(entry.getValue());
    }

    return new StringAsset(applicationDescriptor.exportAsString());
}

}

Abaixo segue meu stateless session bean e as interfaces local e remota

@Stateless
public class ColecaoRegistrationBean implements ColecaoRegistrationLocal, ColecaoRegistrationRemote {

@Inject
private Logger log;

@Inject
private EntityManager em;

public Colecao register(Colecao bean) throws Exception {
    String simpleName = bean.getClass().getSimpleName();

    log.info("Register method was run for " + simpleName);
    em.persist(bean);
    log.info(bean.getClass().getCanonicalName() + " was sucessfully saved to the database.");
    log.info(bean.toString());

    return bean;
}

}

@Local
public interface ColecaoRegistrationLocal {
Colecao register(Colecao colecao) throws Exception;
}

@Remote
public interface ColecaoRegistrationRemote {
Colecao register(Colecao colecao) throws Exception;
}