我想從Eclipse部署一個多模塊Maven項目到使用JRebel的本地Tomcat。該項目具有以下結構:從Eclipse部署Web項目使用JRebel
root [packaging: pom]
|
|--- domain [packaging: jar
|
|--- manager [packaging: jar]
|
|--- web [packaging: war]
我已經在3個子模塊中的每一箇中創建了src/main/resources/rebel.xml
。我可以在Eclipse中將Web項目部署到Tomcat(不使用JRebel),沒有任何問題。
不過,如果我change the deployment to use JRebel,我得到以下錯誤:
SEVERE: Exception sending context initialized event to listener instance
of class com.web.listeners.WebAppListener
java.lang.IllegalArgumentException: Unknown entity: com.model.Role
....
....
Caused by: org.hibernate.MappingException: Unknown entity: com.model.Role
Role
是從域項目的持久(JPA /休眠)類,它似乎是在WebAppListener
引用它,是觸發錯誤:
public class WebAppListener implements ServletContextListener, HttpSessionListener,
HttpSessionAttributeListener {
private RoleManager roleManager;
@Override
public void contextInitialized(ServletContextEvent sce) {
BeanFactory beanFactory = WebApplicationContextUtils.
getRequiredWebApplicationContext(sce.getServletContext());
this.roleManager = beanFactory.getBean(RoleManager.class);
saveIfAbsent("USER", "Normal User");
}
private void saveIfAbsent(String roleName, String roleDescription) {
if (roleManager.getRole(roleName) == null) {
Role role = new Role();
role.setName(roleName);
role.setDescription(roleDescription);
roleManager.saveRole(role);
}
}
}
它看起來像該代碼執行時不會加載domain
類,任何想法如何解決這一問題?
是的,這就是他們的樣子。另一個主題是不相關的,因爲我想從IDE內部運行JRebel –