Spring aspectj jar未正确配置

时间:2011-01-14 06:31:14

标签: spring aspectj spring-roo

当我尝试使用Roo创建的JPA对象时,我收到此错误。

  

实体管理器尚未注入(Spring Aspects JAR配置为        AJC / AJDT方面库?)

我已经按照一些在线建议将spring-aspects.jar添加到Eclipse中的aspectj路径,但我仍然遇到此错误。有谁知道如何解决这个问题?

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

5 个答案:

答案 0 :(得分:1)

转到STS ROO控制台(右键单击STS中的项目,然后单击Spring Tools,然后打开Spring Roo) 输入提示符执行clean(将执行Maven清理) 然后键入perform eclipse

它应该工作!

答案 1 :(得分: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
        }
    }
    

答案 2 :(得分: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的包浏览器中。

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

答案 3 :(得分:0)

我遇到了同样的问题并通过Spring Tools修复了它在我的项目上启用Spring Aspects Tooling。

我的课程由Roo生成并推入(我遇到了太多问题),我只是将它们添加到我创建的全新Google Web应用程序项目中(因此它使用GAE的应用程序布局和war目录什么都没有Maven,至少还没有。)

答案 4 :(得分:0)

您必须为指示域创建存储库。

在roo-terminal中运行以下脚本

ES。

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