1

请大家给我看一个关于如何让 Spring 3.1.1 在 Google App Engine 上运行的教程,好吗?

我遵循了几个教程,并设法让简单的 HelloWorld 示例在 App Engine 上工作。然而,当我走得更远时,我卡在了 Spring 和 Datastore 之间的持久化过程中。我查看了这个线程在 Spring 3.1 中配置 JDO?,但它在本地主机上工作,但由于 javax.naming.NamingException,当我部署到应用程序引擎时它不起作用。

因此,我正在寻找一个不太简单的教程,它涵盖了现实生活应用程序的基本方面,例如视图、模型和数据库。

4

2 回答 2

0

花了大约一天的时间试图完成这项工作,我想我会在这里添加一些额外的有用信息。首先看看这个项目https://github.com/hleinone/spring-gae-jdo和这个问题:http ://code.google.com/p/googleappengine/issues/detail?id=1240 -- 评论24是有用的。

如果有人想使用注释驱动的配置来解决这个问题,我是这样做的:

package com.domain.yourcode.configuration;

import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.jdo.GAETransactionAwarePersistenceManagerFactoryProxy;
import org.springframework.orm.jdo.JdoTransactionManager;
//import org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy;

@Configuration
public class JDOConfiguration {

    private static final PersistenceManagerFactory pmf =     JDOHelper.getPersistenceManagerFactory("transactions-optional");

    @Bean
    public GAETransactionAwarePersistenceManagerFactoryProxy proxyPmf() {
        GAETransactionAwarePersistenceManagerFactoryProxy proxy = 
                new GAETransactionAwarePersistenceManagerFactoryProxy();
        proxy.setTargetPersistenceManagerFactory(pmf);
        proxy.setAllowCreate(false);
        return proxy;
    }

    @Bean
    public JdoTransactionManager transactionManager() {
        JdoTransactionManager mgr = new JdoTransactionManager();
        mgr.setPersistenceManagerFactory(pmf);
        return mgr;
    }

}

你仍然需要<tx:annotation-driven/>你的 applicationContext.xml

于 2012-09-21T15:19:54.073 回答
0

Jappstart是查看使用 Spring 和 Datastore(通过 JPA)的 GAE 工作示例的好地方,也是构建基本 GAE/J 应用程序的良好起点。

于 2012-05-09T17:52:16.080 回答