Я устанавливаю приложение GWT на основе GWT / RequestFactory на стороне клиента и JPA / EclipseLink через WebLogic на стороне сервера.
Однако во время разработки каждый раз что-то меняю на стороне серверакода (это может быть сущность, DAO или даже комментарий в файле Java!), я получаю ClassCastException
между 2 внешне похожими классами, когда пытаюсь использовать свое приложение, и единственным способом избавиться от негоперезапустить мой сервер WebLogic.Даже повторное развертывание приложения не помогает.
10 февраля 2012 г. 16:08:10 com.google.web.bindery.requestfactory.server.RequestFactoryServlet doPost SEVERE: Неожиданная ошибка java.lang.ClassCastException: com.mycompany.MyClass не может быть преобразован в com.mycompany.MyClass в com.mycompany.server.locator.CodeLevelLocator.getId (MyClassLocator.java:1) в com.google.web.bindery.requestfactory.server.LocatorService.doGetId (LocatorServiceLayer.java:168) на com.google.web.bindery.requestfactory.server.LocatorServiceLayer.getId (LocatorServiceLayer.java:66) на com.google.web.bindery.requestfactory.server.Dercoayayer .DercoLayerJava: 81)
Есть идеи, как избежать перезапуска этого сервера?
Спасибо.
РЕДАКТИРОВАТЬ : я настраиваюНаграда за это, потому что перезапуск WebLogic после каждого изменения сервера действительно болезненный !!!
EDIT2 решена благодаря Джеймсу путем добавления следующего ServletContextListener:
public class DeploymentListener implements ServletContextListener {
private static Logger log = LoggerFactory
.getLogger(DeploymentListener.class.getName());
@Override
public void contextDestroyed(ServletContextEvent arg0) {
try {
// close the Entity Manager Factory.
EMF.close();
} catch (Exception e) {
log.error("Error closing the Entity Manager Factory", e);
}
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// nothing to do
}
}