3

I have a problem with deploy Java EE application to WildFly I tried different ways.

I created java app by maven archetype (wildfly-javaee7-webapp-ear-archetype) And tried run to Wildfy via Idea (and admin console), but got error deploy:

Cannot upload deployment: {"WFLYCTL0080: Failed services" => {"jboss.deployment.subunit.\"dtest-ear.ear\".\"dtest-ejb.jar\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"dtest-ear.ear\".\"dtest-ejb.jar\".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of subdeployment \"dtest-ejb.jar\" of deployment \"dtest-ear.ear\" Caused by: java.lang.RuntimeException: WFLYSRV0177: Error getting reflective information for class by.mass.service.MemberRegistration with ClassLoader ModuleClassLoader for Module \"deployment.dtest-ear.ear.dtest-ejb.jar:main\" from Service Module Loader Caused by: java.lang.NoClassDefFoundError: Ljavax/enterprise/event/Event; Caused by: java.lang.ClassNotFoundException: javax.enterprise.event.Event from [Module \"deployment.dtest-ear.ear.dtest-ejb.jar:main\" from Service Module Loader]"}}

In log:

ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.subunit."dtest-ear.ear"."dtest-ejb.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."dtest-ear.ear"."dtest-ejb.jar".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of subdeployment "dtest-ejb.jar" of deployment "dtest-ear.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:163)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: WFLYSRV0177: Error getting reflective information for class by.mass.service.MemberRegistration with ClassLoader ModuleClassLoader for Module "deployment.dtest-ear.ear.dtest-ejb.jar:main" from Service Module Loader
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70)
at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:57)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:107)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:156)
... 5 more
Caused by: java.lang.NoClassDefFoundError: Ljavax/enterprise/event/Event;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2575)
at java.lang.Class.getDeclaredFields(Class.java:1908)
at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57)
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66)
... 10 more
Caused by: java.lang.ClassNotFoundException: javax.enterprise.event.Event from [Module "deployment.dtest-ear.ear.dtest-ejb.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130)
... 15 more

I don't know why cdi-api.jar don't use wildfly jars.

<dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>

I removed - provided. (cdi-api.jar packaged to app.ear) And app become run on Wildfly. But after call http://localhost:7001/dtest-web/rest/members I have ERROR, because all @Inject object null.

ERROR [io.undertow.request] (default task-5) UT005023: Exception handling request to /dtest-web/rest/members: org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
at org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:76)
at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:212)
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:149)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:372)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

enter image description here

What's happening? Can anyone have a minimal example REST + EJB?


@Path("/members")
@RequestScoped
public class MemberResourceRESTService {
@Inject
private Logger log;

@Inject
private Validator validator;

@Inject
private MemberRepository repository;

@Inject
MemberRegistration registration;

@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Member> listAllMembers() {
    return repository.findAllOrderedByName();
}

@GET
@Path("/{id:[0-9][0-9]*}")
@Produces(MediaType.APPLICATION_JSON)
public Member lookupMemberById(@PathParam("id") long id) {
    Member member = repository.findById(id);
    if (member == null) {
        throw new WebApplicationException(Response.Status.NOT_FOUND);
    }
    return member;
}
Serj Malko
  • 326
  • 4
  • 15

1 Answers1

0

Seems like a problem with the deployment.

I cant solve your problem's cause directly, but probably the simplest solution is to change the deployment model from EAR to WAR archive.

PS. please also make sure, that you are not using an unstable WildFly version.

G. Demecki
  • 10,145
  • 3
  • 58
  • 58