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;
}