如何在Apache Wicket中使用Spring Roo?

时间:2012-01-22 20:44:43

标签: spring wicket spring-roo wicket-1.5

我有一个由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步骤?任何帮助表示赞赏。谢谢!

2 个答案:

答案 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应用程序上下文,它就可以了