2010-08-14 3 views
2

j'ai créé une application utilisant GWT et de soutien pour Google Datastore mais maintenant je suis en train de déplacer ma demande à mon propre serveur et j'essaie aussi de détacher mon application de Google App Engine et de Datastore.Comment configurer une application de Google Web Toolkit avec DataNucleus + PostgreSQL

Pour être plus précis: Je veux cesser d'utiliser Google Datastore et commencer à utiliser JDO et DataNucleus mais avec PostgreSQL (ou une autre base de données relationnelle). J'ai essayé de chercher dans Datanucleus.org mais il n'y avait pas de tutoriel simple à utiliser.

S'il vous plaît, quelqu'un peut-il m'aider?

Merci beaucoup! =)

Répondre

2

J'ai découvert comment le faire si je pense qu'il devrait être plus facile eheheh.
Voilà:

1) Nous devons d'abord configurer le serveur PostgreSQL;

2) Créer notre application web avec webAppCreator (SDK de GWT);

3) Étant donné que nous devons améliorer nos classes de domaine pour eux à utiliser par DataNucleus et JDO, nous avons plusieurs options pour le faire. J'ai utilisé une tâche Apache Ant (à partir de Google App Engine SDK). Si nous faisons cela, nous pouvons utiliser les bonnes parties du moteur de l'application (amélioration de classe simple), mais notre application ne sera pas liée aux restrictions d'App Engine.
Les ajouts au build.xml créé avec webAppCreator:

<!-- this refers to the location of my Google AppEngine SDK --> 
<property name="sdk.dir" location="C:/Projects/appengine-java-sdk" /> 
<import file="${sdk.dir}/config/user/ant-macros.xml" /> 

<target name="copyjars" 
    description="Copies the App Engine JARs to the WAR."> 
    <copy 
    todir="war/WEB-INF/lib" 
    flatten="true"> 
    <fileset dir="${sdk.dir}/lib/user"> 
     <include name="**/*.jar" /> 
    </fileset> 
    </copy> 
</target> 

<target name="compile" depends="copyjars" 
    description="Compiles Java source and copies other source files to the WAR."> 
    <mkdir dir="war/WEB-INF/classes" /> 
    <copy todir="war/WEB-INF/classes"> 
    <fileset dir="src"> 
     <exclude name="**/*.java" /> 
    </fileset> 
    </copy> 
    <javac 
    srcdir="src" 
    destdir="war/WEB-INF/classes" 
    classpathref="project.class.path" 
    debug="on" /> 
</target> 

<target name="datanucleusenhance" depends="compile" 
     description="Performs JDO enhancement on compiled data classes."> 
    <enhance_war war="war" /> 
</target> 

4) Téléchargez le pilote PostgreSQL JDBC à partir du site officiel;

5) Télécharger le fichier DataNucleus-rdbms.jar de la page SourceForge officielle;

6) Ajoutez ces jars au Project Classpath;

7) Créez un fichier avec le contenu suivant:

javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.jdo.JDOPersistenceManagerFactory 
javax.jdo.option.ConnectionDriverName=org.postgres.jdbc.Driver 
javax.jdo.option.ConnectionURL=jdbc:postgres://localhost:5432/myschool 
javax.jdo.option.ConnectionUserName=root 
javax.jdo.option.ConnectionPassword=rootroot 
datanucleus.autoCreateTables=true 

8) Créer un PersistenceManagerFactory comme ceci:

File propsFile = new File("Insert the location of the properties file here"); 
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(propsFile); 

9) Créer les classes de domaine et exécutez la nouvelle Ant cible datanucleusenhance;

10) Cela va créer des classes améliorées et la connexion avec la base de données relationnelle et également stocker les informations contenues dans les tables de PostgreSQL.

11) Si je ne me trompe pas et si je ne rien oublier que c'est tout :)





Merci de lire la question. S'il vous plaît, si vous remarquez quelque chose de mal, pouvez-vous me le dire? C'est ma première fois ici: P

==== ==== Quelques références
http://code.google.com/intl/en/appengine/docs/java/tools/ant.html#Enhancing_JDO_Classes

Questions connexes