`
superfofo
  • 浏览: 129983 次
  • 性别: 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?

相关推荐

    Struts2,Spring,JDO,AJAX on GAE

    Struts2、Spring、JDO(Java Data Objects)和AJAX(Asynchronous JavaScript and XML)是四个在Web应用开发中非常关键的技术。这篇博客“Struts2,Spring,JDO,AJAX on GAE”可能探讨了如何在Google App Engine (GAE)...

    gae strus2 spring 整合

    【gae strus2 spring 整合】是一种在Google App Engine(GAE)平台上将Struts2和Spring框架集成的技术方案。这种整合旨在充分利用Struts2的MVC架构和Spring的依赖注入(DI)以及面向切面编程(AOP)能力,以构建高效...

    spring+gae

    2. **数据存储**:Spring与GAE的数据存储API(如JDO或JPA)结合,可以提供一个统一的数据访问层,简化对Google Datastore的操作。 3. **调度任务**:Spring的TaskExecution和TaskScheduler模块可以与GAE的后台任务...

    配置 google app 配置 spring. 配置jdo

    配置 JDO" 涉及到的是将 Google 应用引擎(Google App Engine,GAE)与 Spring 框架以及 Java Data Objects(JDO)进行集成的过程。这篇博文可能是指导开发者如何在 GAE 平台上设置 Spring 和 JDO 的详细教程。在 ...

    spring+gae+hibernate

    标题“spring+gae+hibernate”所提及的是一个技术集成项目,主要涉及Spring框架、Google App Engine(GAE)和Hibernate三个关键组件。让我们详细探讨这三个技术以及它们的集成。 Spring是一个开源的Java企业级应用...

    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 ...

    基于GAE的Demo

    【基于GAE的Demo】是一个使用Eclipse集成开发环境构建的项目,主要展示了如何在Google App Engine(GAE)平台上整合Struts2、Spring和Tiles框架。GAE是Google提供的一个云计算平台,允许开发者在Google的基础设施上...

    flex + spring + BlazeDS + google App JDO 实现一个CRUD.

    总结来说,这个项目展示了如何利用Flex构建用户界面,Spring处理业务逻辑,BlazeDS作为数据通信中介,以及GAE的JDO进行数据存储,形成一个完整的客户端-服务器端应用。这种架构结合了富客户端的交互体验和云计算的可...

    spring3+springmvc+jpa2+gae

    标题 "spring3+springmvc+jpa2+gae" 指的是一个集成开发环境,它结合了Spring框架的三个核心组件以及Google App Engine (GAE)。这个项目旨在展示如何在GAE上运行一个基于Spring 3、Spring MVC和JPA 2.0的应用程序。...

    jdo API 2.2

    在Google App Engine (GAE)环境中,JDO API 2.2是开发者常用的工具,它允许应用程序与GAE的数据存储服务进行交互。JDO 2.2提供了一种简单、灵活且强大的方式来管理对象的生命周期,包括创建、查询、更新和删除对象。...

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    【标题】"gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_" 提供的信息表明,这是一个使用PyTorch实现的图自编码器(Graph Autoencoder, 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 的指南在这里: : 如果您想...

    gae_in_pytorch-master_GAE_

    **图形自动编码器(GAE)在PyTorch中的实现** **一、GAE概述** 图形自动编码器(Graph Autoencoder, GAE)是一种应用于图数据的深度学习模型,它结合了自动编码器(Autoencoder)的思想与图神经网络(Graph Neural...

    springongae

    Spring on GAE,即Spring框架在Google App Engine (GAE)上的应用,是将流行的Java企业级开发框架Spring与Google的云计算平台Google App Engine相结合的技术实践。本文将深入探讨Spring on GAE的相关知识点,包括其...

    GAE入门教程

    pass之GAE入门教程, 学习GAE

    GAE blog安装

    通常,Python博客应用可能会使用Django或Flask框架,而Java可能使用Spring Boot。 4. **源码管理**:在部署前,源代码应该被组织在一个版本控制系统中,如Git。这有助于跟踪更改,并确保团队合作时的一致性。 5. *...

    GAE包(以配置好,解压可用)

    标题 "GAE包(以配置好,解压可用)" 提供的信息表明,这是一个已经预配置好的Google App Engine (GAE)开发环境的压缩包。GAE是Google提供的一项平台即服务(PaaS),允许开发者在Google的基础设施上运行自己的Web...

    基于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 ...

Global site tag (gtag.js) - Google Analytics