A valid ejb jar requires at least one session/entity/message driven bean

hiwi

Mitglied
Hallo.

Ich weiß nicht, was ich hier falsch mache. Ich habe schon einige Foren- und Tutorialbeiträge durchgeschaut, aber noch nichts gefunden, was mir hier weiterhilft.

Ich habe ein Projekt BaseApp mit einem EAR, einem EJB und einem WAR-Modul.
Ich habe mir die grundlegenden Dinge aus einem anderen Projekt herausgenommen, welches schonmal gelaufen ist, aber mittlerweile seit einem Jahr auch auf Eis liegt und nicht mehr läuft. Dort liegt der Fehler aber woanders.
Es ist ein MAVEN-Projekt.
Es werden benutzt/sollen benutzt werden: MySql, Hibernate, JPA, JSF2.1 und Primefaces.

Im EJB-Modul sind vorhanden(!!!): Eine JpaEntity als @MappedSuperclass, eine @Entity Account, die von JpaEntity erbt und auch mehr als eine Bean, unter anderem eine EntityAccessBean, die mit @Stateless annotiert ist.

Im WAR-Modul ist bisher nur eine fast leere home.xhtml-Seite und eine @ManagedBean RegistrationMBean, in die ich die AccountBean mit @EJB eingehängt habe.

Wenn ich in Netbeans Rechtsklick auf das EAR-Modul mache und Run drücke, bekomme ich folgende Fehlermeldung:

Fehler beim Deployment: Exception while deploying the app [BaseApp-ear] : Invalid ejb jar BaseApp-ejb-1.0-RC4.jar: it contains zero ejb. A valid ejb jar requires at least one session/entity/message driven bean.. Weitere Informationen finden Sie unter server.log.

Der Serverlog sieht so aus:

SEVERE: Exception while deploying the app [BaseApp-ear]
SEVERE: Exception during lifecycle processing
java.lang.IllegalArgumentException: Invalid ejb jar BaseApp-ejb-1.0-RC4.jar: it contains zero ejb. A valid ejb jar requires at least one session/entity/message driven bean.
at org.glassfish.ejb.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:147)
at org.glassfish.ejb.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:112)
at com.sun.enterprise.deployment.BundleDescriptor.visit(BundleDescriptor.java:621)
at org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl.visit(EjbBundleDescriptorImpl.java:757)
at com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:116)
at com.sun.enterprise.deployment.BundleDescriptor.visit(BundleDescriptor.java:621)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:703)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:248)
at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:232)
at org.glassfish.javaee.core.deployment.DolProvider.processDOL(DolProvider.java:188)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:222)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:96)
at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:878)
at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:818)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:374)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:724)

SEVERE: Exception while deploying the app [BaseApp-ear] : Invalid ejb jar BaseApp-ejb-1.0-RC4.jar: it contains zero ejb. A valid ejb jar requires at least one session/entity/message driven bean.


Ich habe allerdings ja aber im EJB-Modul zumindest eine @Entity und eine @Stateless Bean.

Wenn mir hier jemand weiterhelfen könnte, damit ich das so zum Laufen kriege, dass ich einmal die App zum Laufen kriege und etwas von der UI aus in die Datenbank schicken kann und auch etwas aus der Datenbank anzeigen kann, wäre ich superdankbar.

Vielen Dank im Voraus,
hiwi
 
Zuletzt bearbeitet:

Neue Themen


Oben