【发布时间】:2012-03-24 15:51:54
【问题描述】:
我使用 Roo 构建了一个小模型。模型中有 6 个具有各种关系的对象 - 很整洁,花了大约 20 分钟!现在我有了它,我想创建 Spring MVC 项目并使用域模型 - 但我想让 Web 项目与 Roo 项目完全分开(我还不了解 Spring MVC 在 Roo 中使用脚手架)。
所以我在 web 项目的 pom.xml 中创建了依赖项,我可以使用“mvn tomcat:run”构建和部署 web 项目。但是,当网络尝试使用 Spring Roo 对象时,我会收到如下异常:
java.lang.IllegalStateException: Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)
at com.loquatic.clcmops.consignortool.entities.Consignor_Roo_Jpa_ActiveRecord.entityManager_aroundBody0(Consignor_Roo_Jpa_ActiveRecord.aj:19)
at com.loquatic.clcmops.consignortool.entities.Consignor_Roo_Jpa_ActiveRecord.ajc$interMethod$com_loquatic_clcmops_consignortool_entities_Consignor_Roo_Jpa_ActiveRecord$com_loquatic_clcmops_consignortool_entities_Consignor$entityManager(Consignor_Roo_Jpa_ActiveRecord.aj:1)
at com.loquatic.clcmops.consignortool.entities.Consignor.entityManager(Consignor.java:1)
我在一个独立项目中为一个项目完成了此操作,其中我有一个具有 main() 方法的类,我必须添加一行代码才能正确加载上下文(这基本上是:How to use JUnit tests with Spring Roo? (Problems with EntityManager))。这是 Spring MVC,我有点假设它是自动发生的 - 我显然错了。
那么我需要在 Web 项目中做些什么来为 Roo jar 文件加载上下文吗?还是我需要更改 roo jar 文件项目中的某些内容?我是否需要用一些东西来注释控制器以使其快乐?
我尝试在 web 项目的 pom.xml 中添加以下内容:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${org.springframework-version}</version>
</dependency>
和
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
但这并没有改变任何事情 - 这也是一些严肃的猜测工作。
有人指点一下吗?您应该如何在另一个不一定是 Roo 项目的项目中使用 Spring 域模型?
谢谢!
【问题讨论】:
-
好像您已经将 Spring 上下文文件与 Web 模块一起移动了。
标签: spring-roo