2011-01-14 1 views
7

Viene visualizzato questo errore quando ho tentato di utilizzare un oggetto JPA creato da Roo.Aspetto springj jar non configurato correttamente

Entità manager non è stato iniettato (è il JAR aspetti Primavera configurato come una libreria/aspetti AJDT AJC?)

Ho seguito qualche consiglio in linea di aggiungere la primavera-aspects.jar a aspectj path in Eclipse ma ottengo ancora questo errore. Qualcuno sa come risolvere questo?

L'ambiente che sto utilizzando è Spring 3.0.5, Hibernate 3.6 e JBoss 6.0.0.Final.

+0

Usi Maven o gestisci le dipendenze a mano? – Ralph

+0

Sto usando Maven 2 – newguy

+0

Ho riscontrato lo stesso problema. Sto usando formica (invece di pom) per costruire il progetto, questa potrebbe essere la causa principale del problema? –

risposta

0

Stavo riscontrando lo stesso problema e l'ho risolto eseguendo gli strumenti Spring | Abilita gli strumenti Spring Aspects sul mio progetto.

Le mie classi sono state generate da Roo e introdotte (avevo troppi problemi con esso) e le ho semplicemente aggiunte a un nuovissimo progetto di applicazione Web di Google che ho creato (quindi utilizza il layout dell'app di GAE con una guerra directory, e nessun Maven per niente, almeno non ancora).

+0

Ho lo stesso problema e questa soluzione non ha funzionato. –

1

Vai alla STS console ROO (tasto destro del mouse nel progetto STS, poi molla Strumenti, quindi Apri Primavera Roo) Tipo nel prompt eseguire pulito (si esibirà Maven pulito) Quindi digitare eseguire eclissi

E ' dovrebbe funzionare!

+0

Quando provo questo, non riesco a digitare il prompt. La finestra mostra "Roo installation" Roo 1.2.1.RELEASE "punta al percorso non esistente" C: \ SpringSource \ spring-roo-1.2.1.RELEASE \ "." –

1

Sembra che non sia stato immesso Entity Manager.

Webapps (possibili cause):

  • Lei non ha aggiunto entità direttore di fabbrica al vostro applicationContext.xml

Applicazioni Java:

  • si didn aggiungere la factory manager di entità al proprio applicationContext.xml
  • sbagliato inizializzazione dell'applicazione (vedi sotto)

    public class SampleApp { 
        public static void main(String[] args) { 
         SampleApp obj = new SampleApp(); 
    
         // Injecting dependencies into application 
         ConfigurableApplicationContext applicationContext = 
           new ClassPathXmlApplicationContext("<PATH-TO>/applicationContext.xml"); 
         applicationContext.registerShutdownHook(); 
         applicationContext.getBeanFactory().autowireBeanProperties(
           obj, AutowireCapableBeanFactory.AUTOWIRE_NO, false); 
    
         // Do the work 
        } 
    } 
    
+0

Come si può controllare applicationContext.xml per sapere se una factory manager di entità è stata aggiunta correttamente? –

1

ho avuto anche questo problema e trovato la risposta qui: http://whyjava.wordpress.com/2012/02/13/fixing-exception-entity-manager-has-not-been-injected-is-the-spring-aspects-jar-configured-as-an-ajcajdt-aspects-library/

Nel mio caso, avevo bisogno di creare un file chiamato <classname>_Roo_Configurable.aj con il seguente contenuto:

privileged aspect <classname>_Roo_Configurable { declare @type: <classname>: @Configurable; }

T il suo spiegava perché le classi esistenti funzionavano, ma quelle nuove che avevo creato no. Il file _Configurable.aj non si presentava (e continua a non esserlo) nel pacchetto explorer in STS.

(So che questa risposta è incredibilmente in ritardo ma spero che aiuta a qualcun altro!)

0

È necessario creare il repository per il dominio indicare.

In roo-terminale Eseguire lo script di follow

es.

repository jpa --interface ~.dao.MyDomainDAO --entity ~.domain.MyDomain