我使用GWT创建了一个应用程序,并支持Google数据存储,但现在我正在尝试将我的应用程序移动到我自己的服务器上,而且我还试图将我的应用程序从Google App Engine和Datastore中分离出来。
更确切地说:我想停止使用Google Datastore并开始使用JDO和Datanucleus,但使用PostgreSQL(或其他关系数据库)。我尝试在Datanucleus.org中搜索,但没有简单的教程供我使用。
拜托,有人可以帮助我吗?
非常感谢! =)
答案 0 :(得分:2)
我已经发现了如何做到这一点虽然我认为它应该更容易eheheh 在这里:
1)首先我们必须设置PostgreSQL服务器;
2)使用webAppCreator(来自GWT SDK)创建我们的Web应用程序;
3)由于我们必须增强我们的域类以供datanucleus和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)将这些罐子添加到Project Classpath;
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 Target datanucleusenhance ;
10)这将创建增强的类和与关系数据库的连接,并将信息存储在PostgreSQL的表中。
11)如果我没有弄错,如果我没有忘记任何事情,那就是:)
感谢您阅读此问题。
如果您发现任何错误,请告诉我?这是我第一次来这里:P
====一些参考文献====
http://code.google.com/intl/en/appengine/docs/java/tools/ant.html#Enhancing_JDO_Classes