2011-01-14 96 views
7

我试图使用由Roo创建的JPA对象时出现此错误。Spring aspectj jar配置不正确

实体管理器尚未被注入(是春节因素JAR配置为 AJC/AJDT方面的图书馆吗?)

我按照一些网上咨询意见,spring-aspects.jar中加入Eclipse中的aspectj路径,但我仍然得到这个错误。有谁知道如何解决这个问题?

我使用的环境是Spring 3.0.5,Hibernate 3.6和JBoss 6.0.0.Final。

+0

你使用Maven还是你手动管理依赖关系? – Ralph 2011-01-14 09:07:40

+0

我正在使用Maven 2 – newguy 2011-01-16 23:28:37

+0

我遇到了同样的问题。我使用ant(而不是pom)来构建项目,这可能是问题的根源吗? – 2012-06-10 02:52:31

回答

0

我有这个相同的问题,并通过做弹簧工具|在我的项目上启用Spring Aspects Tooling。我的课程由Roo生成并推入(我的方法太多了),我只是将它们添加到我创建的全新Google Web应用程序项目中(因此它使用GAE的应用程序布局进行战争目录,并没有Maven的任何东西,至少目前还没有)。

+0

我有同样的问题,这个解决方案什么也没做。 – 2013-04-09 10:10:06

1

转到STS ROO控制台(右键单击该项目的STS,那么Spring工具,然后打开的Spring Roo) 类型的提示进行清洁(将执行的Maven干净) 然后键入执行蚀

它应该管用!

1

看起来好像你还没有注入实体管理器。

WEBAPPS(可能的原因):

  • 你没有实体管理器添加到您的applicationContext.xml

Java应用程序

  • 你没将实体管理器工厂添加到您的applicationContext.xml
  • 错误的应用程序初始化(见下文)

    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 
        } 
    } 
    
1

我有这个问题太,并在这里找到了答案: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/

就我而言,我需要创建一个名为<classname>_Roo_Configurable.aj与文件以下内容:

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

ŧ他解释了为什么现有的课程有效,但我创建的新课程没有。 _Configurable.aj文件没有(现在仍然没有)出现在STS的包浏览器中。

(我知道这个答案是非常晚,但我希望它可以帮助别人!)

0

你必须创建为指示域库。

在roo-terminal运行下面的脚本

es。

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