Ungültige ejb-jar: es enthält null ejb.
Ich habe 2 Module: ejb und Krieg und Ohr-Modul, das Sie enthält. Module erfolgreich erstellen, aber wenn ich versuche zum bereitstellen von Ohr zu glassfish, ich erhalte diese Fehlermeldung:
glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=17;_ThreadName=Thread-2;|Exception while deploying the app [EarModule] : Invalid ejb jar [BackEnd-1.0-SNAPSHOT.jar]: it contains zero ejb.
Note:
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message-driven bean.
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar.
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.|#]
Ich weiß wirklich nicht, was zu tun ist, ich habe eine Menge Fragen wie meine, aber es war keine Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zum hinzufügen eines EJB-in Ihre war-oder EAR-Datei. Erstellen Sie einfach eine neue Klasse und mit Anmerkungen versehen Sie es mit
@Stateless
Habe ich verstanden, was falsch war. Das problem war in den run configurations, ich bin mit Intellij Idea und im run-Konfigurationen, die es zu bauen und machen Sie vor dem ausführen von meinem Ohr-Modul. Ich entfernt das und nach maven installieren Sie es erfolgreich bereitgestellt.
Ich weiß, das ist sehr bauen spezifische und verwendet es Netbeans statt der OP-IDE, sondern weil ich Sie hier führen, und dies wird wahrscheinlich nützlich für einige Benutzer:
Ich hatte den folgenden Aufbau:
Netbeans Enterprise-Anwendung mit Maven
Glassfish 4.1
Java EE 7
Hatte ich versucht eine Migration von einer früheren nicht-maven-enterprise-Anwendung und der Klon hat nicht ganz so funktioniert wie ich erwartet habe, gab es einige alte ejb-jars rumliegen, die ich gelöscht.
Hatte ich einiges gemacht, um es zu beheben:
Wahrscheinlich hatte ich zu tun, ein paar Dinge, die ich vergaß, aber wenn Sie immer noch laufen in Fragen, Kommentar unten und ich werde versuchen, zu aktualisieren.
Nur versuchen, bauen & installieren Sie Ihr Projekt mithilfe von Maven , und dann verteilen Sie es in glassfish ( nicht führen Sie Ihr Projekt direkt aus Ihrer IDE )
Traf ich dieses problem auch. Es trat auf, als ich hatte, importierte Sie ein neues EJB-Projekt in meinem Eclipse-workspace. Das Projekt hat nicht einen Verweis auf die Glassfish-Bibliotheken dann, da war es aber noch nicht in der EAR-Bereitstellung Baugruppe.
Beim speichern der Bean-Datei, die die IDE automatisch importiert
javax.inject.Singleton
stattjavax.ejb.Singleton
. Das machte den code kompilieren, ohne Warnungen, aber werfen die gleichen Fehler wie im original-post.