2010-08-14 80 views
2

我創建了一個使用GWT並支持Google Datastore的應用程序,但現在我試圖將我的應用程序移動到我自己的服務器上,並且還試圖將我的應用程序來自Google App Engine和Datastore的應用程序。如何使用Datanucleus + PostgreSQL配置Google Web Toolkit應用程序

更確切地說:我想停止使用Google Datastore,並開始使用JDO和Datanucleus,但使用PostgreSQL(或其他關係數據庫)。我試着在Datanucleus.org上搜索,但沒有簡單的教程供我使用。

請問,有人可以幫助我嗎?

非常感謝! =)

回答

2

我發現如何做到這一點,但我認爲它應該更容易eheheh。
這裏是:

1)首先我們必須安裝PostgreSQL服務器;

2)使用webAppCreator(來自GWT SDK)創建我們的Web應用程序; 3)由於我們必須增強我們的域類以供數據核和JDO使用,我們有多種選擇來實現它。我使用了Apache Ant任務(來自Google App Engine SDK)。如果我們這樣做,我們可以使用app引擎中的優秀部分(簡單的類增強),但我們的應用程序不會受限於App Engine。
的增加與webAppCreator創建的build.xml文件:

<!-- 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)下載從官方網站PostgreSQL的JDBC驅動程序;

5)從官方sourceforge頁面下載datanucleus-rdbms.jar文件;

6)將這些罐子添加到項目類路徑;

7)創建具有以下內容的文件:

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)創建這樣一個PersistenceManagerFactory:

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

9)創建域類和運行新的Ant目標datanucleusenhance;

10)這將創建增強類和與關係數據庫的連接,並將信息存儲在PostgreSQL表中。

11)如果我沒有記錯,如果我不是這一切:)





感謝您閱讀的問題沒有忘記什麼。 請注意,如果您發現任何問題,您能告訴我嗎?這是我第一次在這裏:P

====一些參考====
http://code.google.com/intl/en/appengine/docs/java/tools/ant.html#Enhancing_JDO_Classes

相關問題