`
superfofo
  • 浏览: 128878 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

GAE jdo and spring inject

阅读更多
开始是因为不知道jdo的update方法是如何设计,然后想参考一下其他一些用泛化操作update时直接传入对象时的具体操作,继而下载了一整套spring的源码下来参详,结果给我发现了spring的orm包里面除了封装了现金主流的存储方式外,同样也支持jdo以及jpa,因此我亦根本不再需要自己去写基类对jdo的封装了,那就直接使用它吧。由于网上对spring以及jdo的结合例子相对较少,我亦十分之郁闷之后,怎么也配置不好<bean id="persistenceManagerFactory" class="org.springframework.orm.jdo.LocalPersistenceManagerFactoryBean"> 这个bean下面一些相关配置信息。之前在没有spring的时候通过一个工厂类直接返回persistenceManagerFactory,如下:private static final PersistenceManagerFactory pmfInstance =JDOHelper.getPersistenceManagerFactory("transactions-optional");因此在网上看到如下类似的配置的时候,我特别敏感,<property name="persistenceManagerFactoryName" value="transactions-optional"/>,当然我亦会去看看这个class里面是否真的有这个parameter,小弟对spring的源码还没有理解透切,稍微看了下,在这个类里面发现有这个class,就不顾一起,先试试先。可惜当你真正使用的时候,结果是会抛错的。在艰难寻找之下,在该地址找到了一份令我启动服务不再抛错的代码(http://wjing63.iteye.com/blog/464310),但出乎意料的是,在进行makePersistent操作的时候,可恶的错误又来了,exception如下:
java.lang.NoSuchMethodError: javax.jdo.PersistenceManager.makePersistent(Ljava/lang/Object;)V
at org.springframework.orm.jdo.JdoTemplate$9.doInJdo(JdoTemplate.java:374)
at org.springframework.orm.jdo.JdoTemplate.execute(JdoTemplate.java:228)
at org.springframework.orm.jdo.JdoTemplate.makePersistent(JdoTemplate.java:372)
由于此时此刻我已被疲劳轰炸得体无完肤,因此继续google,找到了相当具说服力的一个论坛中的帖子(http://www.jpox.org/servlet/forum/viewthread?thread=3500)按图索引,重新更新应用中的spring.jar,结果就好了。

完整的配置总结如下:
    <bean id="persistenceManagerFactory"
        class="org.springframework.orm.jdo.LocalPersistenceManagerFactoryBean">
        <property name="jdoProperties">
            <props>
                <prop key="javax.jdo.PersistenceManagerFactoryClass">
                      org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory
                    </prop>
                <prop key="javax.jdo.option.ConnectionURL">
                      appengine
                </prop>
                <prop key="javax.jdo.option.NontransactionalRead">
                      true
                </prop>
                <prop key="javax.jdo.option.NontransactionalWrite">
                      true
                </prop>
                <prop key="javax.jdo.option.RetainValues">
                      true
                </prop>
                <prop key="datanucleus.appengine.autoCreateDatastoreTxns">
                      true
                    </prop>
            </props>
        </property>
        <!-- property name="persistenceManagerFactoryName" value="transactions-optional"/-->
       
    </bean>
   
<bean id="jdoTransactionManager" class="org.springframework.orm.jdo.JdoTransactionManager">
        <property name="persistenceManagerFactory" ref="persistenceManagerFactory"/>
    </bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager" ref="jdoTransactionManager"/>
        <property name="target" ref="employeeService"/>
        <property name="transactionAttributes">
            <props>
                <prop key="save*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="del*">PROPAGATION_REQUIRED</prop>
                <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
            </props>
        </property>
    </bean>
2
0
分享到:
评论
3 楼 superfofo 2009-12-03  
noelo 写道
你这个配置应该是不是用spring的mvc,但是能不能把对应的employee的类,接口和如何使用,包括jar包,发一个完整的呢?谢谢


我只是在对它的数据层利用spring作为封装而已,gae所需要的包上google的该频道下就可以完整下载了,至于spring,完全可以将spring.jar直接copy到应用下操作。
2 楼 noelo 2009-11-30  
你这个配置应该是不是用spring的mvc,但是能不能把对应的employee的类,接口和如何使用,包括jar包,发一个完整的呢?谢谢
1 楼 noelo 2009-11-23  
请问,一个完整的gae 和spring 需要哪些 jar包?请列个清单给我,谢谢,发现要配齐了这些jar包是一件比较麻烦的事情。您是不是使用spring的mvc?

相关推荐

    gae strus2 spring 整合

    gae strus2 spring + 文件上传返回文件 google app engine 使用的jar 有图示

    spring+gae

    实现了gae与spring3之间的集成

    Struts2,Spring,JDO,AJAX on GAE

    NULL 博文链接:https://acheron.iteye.com/blog/402499

    GAE-Spring-Boot

    mvn install)$ git clone https://github.com/scratches/spring-boot-sample-gae$ cd spring-boot-sample-gae$ mvn gae:deploy也作为部署在 WTP 或常规 Tomcat 容器中的 WAR 运行。 main()应用程序(普通的 Spring ...

    spring+gae+hibernate

    实现了spring+gae+hibernate的集成

    基于GAE的Demo

    Eclipse开发 Gae,Struts2,Spring,云计算,学习gae云计算的好例子

    GAE使用规则

    GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则

    sm-gae-spring

    设置和使用 Maven + JDO 通常比让 JPA + Spring 在 AppEngine 上正常工作要容易得多。 但是,您学习的 Spring Data API 可以通过正确的配置使用 AppEngine 的数据存储。 Google 使用 JPA 的指南在这里: : 如果您想...

    spring3+springmvc+jpa2+gae

    实现了spring3+springmvc+jpa2.0+gae之间的集成,项目可直接运行

    GAE入门教程

    pass之GAE入门教程, 学习GAE

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    图自编码器GAE的pytorch实现,参考论文vgae

    基于Google.App.Engine(GAE)的Java和GWT应用开发.pdf

    Chapter 5: JDO Object Relationships and Queries Chapter 6: Implementing MVP, an Event Bus, and Other GWT Pattern Chapter 7: Background Processing and Feed Management Chapter 8: Authentication using ...

    GAE之webapp框架

    GAE平台开发应用时,简单的webapp框架的使用

    gae_in_pytorch-master_GAE_

    图形自动编码器GAE的pytorch实现,可参考论文VGAE

    gae-spring-mvc-demo

    GAE-SPRING-MVC示例项目信息GroupId:com.google.appengine.archetypes ArtifactId:appengine-skeleton-archetype 版本:2.0.2-1.9.21 [在App Engine上部署的项目]( ) 技术领域Spring MVC Google App Engine API

    gae-ce-jdo-maven:由JDO和Maven支持的带有云端点的GAE(Google App Engine)示例项目

    gae-ce-jdo-maven 由JDO和Maven支持的带有Cloud Endpoints的GAE(Google App Engine)示例项目。 为了理解这一点,您应该熟悉 。 此存储库中的代码基于并附加了对的支持。 添加了SampleJdoClass.java和...

    GAE编程指南

    《GAE编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《GAE编程指南》是介绍使用这个强大平台的专家级...

    GAE和SAE的比较

    云计算下的PaaS中的GAE和SAE平台

    spring-gae-app:spring-gae-app

    示例 Spring MVC、Spring Security、JPA、Google App Engine 应用 需要 3.1 或更高版本,以及 JDK 7+ 才能运行。 要构建,运行 mvn package 构建将运行测试,但要显式运行测试,您可以使用测试目标 mvn test 要...

Global site tag (gtag.js) - Google Analytics