我有一个由Roo创建和管理的持久层(JPA实体对象)。它在自己的项目中,构建到jar,我使用它与单独的Spring MVC 3 Web应用程序。
我想在另一个由Apache Wicket支持的Web应用程序中使用这个相同的Roo持久性项目。我已经看过为Wicket制作的几个Roo附加组件,但它们都没有编译(我不是唯一一个有问题的人)。
我遇到的问题是,每当我尝试从Wicket页面或组件中调用我的一个Roo实体时,我都会遇到以下异常:
Caused by: java.lang.IllegalStateException: Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)
at com.x.domain.UserAccount_Roo_Entity.ajc$interMethod$com_x_domain_UserAccount_Roo_Entity$com_x_domain_UserAccount$entityManager(UserAccount_Roo_Entity.aj:91)
at com.x.domain.UserAccount.entityManager(UserAccount.java:1)
我在Spring + Wicket wiki之后配置了我的应用程序:https://cwiki.apache.org/WICKET/spring.html
有没有人知道设置Wicket应用程序以利用Spring Roo实体的1,2,3步骤?任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
我在谷歌代码中发现了这一点,听起来就像它正在做你想要的http://code.google.com/p/spring-roo-wicket-addon/
答案 1 :(得分:0)
我找到了解决问题的方法。当我使用Maven jetty运行我的wicket webapp时:运行目标,它起作用了。但是,我试图通过Java代码启动Jetty:
public class Start {
public static void main(String[] args) throws Exception {
Server server = new Server();
SocketConnector connector = new SocketConnector();
server.start();
}
}
我没有在这个“开始”类中加载Spring ApplicationContext。一旦我修改了这个类来加载Spring应用程序上下文,它就可以了