2009-01-29 2 views
19

Ich bin derzeit die Entwicklung einer EJB 3.0-basierte Anwendung auf dem JBoss AS 5.0.0.GA und erst vor kurzem die folgende Warnung zeigte im Serverprotokoll auf:JBoss: Was bedeutet die Warnung EJBTHREE-1246 von der InterceptorRegistry?

 
09:50:19,735 WARN [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container 
09:50:19,735 WARN [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container 
09:50:19,735 WARN [InterceptorRegistry] applicable interceptors is non-existent for ... 
... 

Die Warnungen werden, sobald ein EJB erzeugt (eine Stateless-Session-Bean) wird in eine Backing-Bean meiner JSF-Webanwendung injiziert. Die Beans funktionieren zwar ohne Probleme, aber ich möchte immer noch wissen, woher diese Warnung kommt und was ich tun kann, um sie zu vermeiden.

Ich habe schon ein wenig herum gesucht, aber keine gute Antwort gefunden (einige sagen, Bean Entwickler müssen sich keine Sorgen machen, aber es ist eine Warnung, also würde ich gerne eine bessere Lösung haben):

Hat also jemand eine Erklärung, was die Warnung verursacht (in Bezug auf einen Bean-Entwickler, nicht Anwendungsserver-Entwickler) und was zu tun, um es zu vermeiden?

Update: Ich habe gerade JBoss 5.0.1.GA Upgrade (Download, Release-Notes) aber leider die Warnung erscheint nach wie vor.

Antwort

25

Soweit ich alle verfügbaren Quellen zu dieser Warnung verstanden habe, ist dies nichts, wofür ein Benutzer von JBoss 5 etwas tun kann und im Grunde nur eine Erinnerung für die Entwickler von JBoss ist, dass sie ihre eigenen Klassen falsch verwenden.

Nach den Ratschlägen der Entwickler ignoriere ich es jetzt, indem ich meine Logging-Konfiguration in conf/jboss-log4j.xml ändere. Ich habe gerade hinzugefügt:

<category name="org.jboss.ejb3.interceptors"> 
    <priority value="ERROR" /> 
</category> 
7

Selbst das JBoss EJB3-Lernprogramm/die Dokumentation besagt, dass Sie diese Warnungen ignorieren können. Nun, wenn alle diese ignorieren können, logge sie nicht ein! Es ist frustrierend zu sehen, dass dieses Problem nicht behoben wird.

+3

Genau! Ich weiß nicht, warum ich als Benutzer ihres Produkts über Warnungen informiert sein muss, die von internen Teilen erzeugt werden, die ich nicht kontrollieren kann, und daher nichts tun kann, um die Warnung zu beheben. –

0

Die Warnungen nicht mehr erscheinen in JBoss 5.1.0, aber das Hinzufügen der Kategorie wie Simon eliminiert in 5.0.x die Protokollierung der Warnungen veröffentlicht

+7

Sie erscheinen immer noch in JBoss 5.1.0 GA: 15: 24: 22,083 WARN [InterceptorsFactory] EJBTHREE-1246: Verwenden Sie keine InterceptorsFactory mit einem ManagedObjectAdvisor, sollte InterceptorRegistry über den Bean-Container – mjn

3

Ich hatte das gleiche Problem , modifiziere die ejb3-interceptors-aop.xml, und funktioniert jetzt gut.

+0

verwendet werden, welche Änderung der Datei hat den Trick? – mjn

+2

Kommentar diese Zeilen: und Funktioniert für mich! – Oscar

1

Ich habe diese Modifikation in EJB3-Interzeptoren-AOP versucht.xml

Ich habe diese Zeilen Kommentar:

<aspect name="InterceptorsFactory" factory="org.jboss.ejb3.interceptors.aop.InterceptorsFactory" scope="PER_INSTANCE"/> 
<advice name="invoke" aspect="InterceptorsFactory"/> 

und es funktioniert

0

einfach die Schritte auf der Serverinstanz

  1. Stopp JBoss und klicken Sie rechts folgen und wählen sauber
  2. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie run -> run configurations
  3. Classpath auswählen -> Jars hinzufügen
  4. Fügen Sie Jars von JBoss ASHOME/client - jbossall-client.jar, JBoss ASHome/common/lib - alle Jars hinzu.
  5. Übernehmen und ausführen.
Verwandte Themen