Я пытался пересобрать пример приложения Restlet для GWT + GAE (http://wiki.restlet.org/docs_2.1/13-restlet/21-restlet/318-restlet/303-restlet.html).Я немного изменил это, так как планирую что-то другое, но я подумал, что это будет хорошее начало.
До сих пор все шло хорошо.«Put» проходил через движок приложения, но когда я попытался сохранить объекты с помощью JPA, я получил следующее исключение:
Caused by: org.datanucleus.exceptions.ClassNotResolvedException: Class "de.fr1zle.shoplist.web.gae.client.ShoppingListRessourceProxy" was not found in the CLASSPATH. Please check your specification and your CLASSPATH.
at org.datanucleus.JDOClassLoaderResolver.classForName(JDOClassLoaderResolver.java:250)
at org.datanucleus.JDOClassLoaderResolver.classForName(JDOClassLoaderResolver.java:415)
at org.datanucleus.metadata.MetaDataManager.loadPersistenceUnit(MetaDataManager.java:767)
... 79 more
Как вы видите, datanucleus каким-то образом пытается получить доступ к прокси-классу GWTзагрузка информации из файла persistence.xml.Я использую следующее в моем ServerRessource:
@Put
public void putShoppingList(ShoppingList shoppingList) {
ShoppingListDOA shoppingListDOA = new ShoppingListDOA(shoppingList);
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("transactions-optional");
try {
EntityManager entityManager = emf.createEntityManager();
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
entityManager.persist(shoppingListDOA);
entityManager.flush();
transaction.commit();
entityManager.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (emf != null)
emf.close();
}
}
У меня почему-то возникает ощущение, что DataNucleus улучшает класс Proxy, хотя я изменил свойства, чтобы он этого не делал.
Использование:GAE 1.4.2 (тоже пробовал 1.4.3), GWT 2.2 и рестлет 2.1м3
Я что-то упускаю здесь?Ваша помощь оценена: -)
Заранее спасибо!
fr1zle