【问题标题】:Spring aspectj jar not configured correctlySpring aspectj jar 未正确配置
【发布时间】:2011-01-14 06:31:13
【问题描述】:

当我尝试使用由 Roo 创建的 JPA 对象时出现此错误。

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

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

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

【问题讨论】:

  • 你使用Maven还是手动管理依赖?
  • 我遇到了同样的问题。我正在使用 ant(而不是 pom)来构建项目,这可能是问题的根本原因吗?

标签: spring aspectj spring-roo


【解决方案1】:

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

它应该工作!

【讨论】:

  • 当我尝试这个时,我无法输入提示。窗口显示“Roo 安装 'Roo 1.2.1.RELEASE' 指向不存在的路径 'C:\SpringSource\spring-roo-1.2.1.RELEASE\'。”
【解决方案2】:

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

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

【讨论】:

  • 如何检查 applicationContext.xml 以判断是否已正确添加实体管理器工厂?
【解决方案3】:

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

就我而言,我需要创建一个名为 &lt;classname&gt;_Roo_Configurable.aj 的文件,其内容如下:

privileged aspect &lt;classname&gt;_Roo_Configurable { declare @type: &lt;classname&gt;: @Configurable; }

这解释了为什么现有的类有效,而我创建的新类却无效。 _Configurable.aj 文件没有(现在仍然没有)显示在 STS 的包资源管理器中。

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

【讨论】:

    【解决方案4】:

    我遇到了同样的问题,并通过 Spring Tools | 解决了这个问题。在我的项目上启用 Spring Aspects Tooling。

    我的类是由 Roo 生成并推送的(我遇到了太多问题),我只是将它们添加到我创建的全新 Google Web 应用程序项目中(因此它使用 GAE 的应用程序布局和 war 目录,并且没有 Maven 做任何事情,至少现在还没有)。

    【讨论】:

    • 我遇到了同样的问题,这个解决方案什么也没做。
    【解决方案5】:

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

    在 roo-terminal 中运行以下脚本

    es.

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 2014-07-30
      • 2018-10-02
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2014-06-04
      相关资源
      最近更新 更多