Domanda

Attualmente sto sviluppando un'applicazione basata su EJB 3.0 su JBoss AS 5.0.0.GA e solo recentemente è stato visualizzato il seguente avviso nel registro del server:

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 ...
...

Gli avvisi vengono generati non appena un EJB (un bean di sessione senza stato) viene iniettato in un bean di supporto della mia applicazione Web JSF. I bean funzionano senza problemi però, ma vorrei comunque sapere da dove proviene quell'avvertimento e cosa posso fare per evitarlo.

Ho già cercato un po 'in giro, ma non ho trovato una buona risposta (alcuni dicono, gli sviluppatori di bean non devono preoccuparsi, ma è un avvertimento, quindi mi piacerebbe avere una soluzione migliore):

Quindi qualcuno ha una spiegazione di ciò che provoca l'avvertimento (in termini di uno sviluppatore di bean, non di uno sviluppatore di application server) e cosa fare per evitarlo?

Aggiornamento: ho appena aggiornato JBoss a 5.0.1.GA ( Scarica , Note di rilascio ) ma sfortunatamente appare ancora l'avvertimento.

È stato utile?

Soluzione

Per quanto ho capito tutte le fonti disponibili in questo avviso, non è nulla che un utente di JBoss 5 possa fare nulla ed è essenzialmente un promemoria per gli sviluppatori di JBoss che usano le loro classi in modo sbagliato.

Seguendo i consigli degli sviluppatori, ora lo sto ignorando cambiando la mia configurazione di registrazione in conf / jboss-log4j.xml. Ho appena aggiunto:

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

Altri suggerimenti

Anche l'esercitazione / documentazione di JBoss EJB3 afferma che è possibile ignorare in sicurezza questi avvisi. Bene, se tutti possono ignorarli, non registrarli! È frustrante vedere che questo problema non viene risolto.

Ho avuto lo stesso problema, modificare ejb3-interceptors-aop.xml e ora funziona bene.

Ho provato questa modifica in ejb3-interceptors-aop.xml

Ho commentato queste righe:

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

e funziona

Gli avvisi non vengono più visualizzati in JBoss 5.1.0, ma l'aggiunta della categoria come postato da Simon elimina la registrazione degli avvisi in 5.0.x

Segui i passaggi

  1. Arresta JBoss e fai clic con il tasto destro sull'istanza del server e seleziona clean
  2. fai clic destro sul progetto e seleziona Esegui - > esegui configurazioni
  3. seleziona classpath - > aggiungi barattoli
  4. Aggiungi vasi da JBoss ASHOME / client - jbossall-client.jar, JBoss ASHome / common / lib - tutti i vasi.
  5. Applica ed esegui.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top