使用App Engine 1.7升级的Junit EntityManager NullPointerException

时间:2012-07-07 17:10:33

标签: java google-app-engine

我的项目中有许多JUnit测试来测试我的DataStore服务。在过去两年中,他们一直工作得很好,我已经能够通过单元测试成功插入,查询和删除实体。几天前我升级到App Engine 1.7,突然间我的所有测试都抛出了NullPointerException,因为

Persistence.createEntityManagerFactory(“transactions-optional”)返回null。我的persistence.xml文件包含以下配置,就像我说的那样,在升级之前已经完美运行。

<persistence-unit name="transactions-optional">
    <provider>org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider</provider> 
    <properties> 
        <property name="datanucleus.NontransactionalRead" value="true"/> 
        <property name="datanucleus.NontransactionalWrite" value="true"/> 
        <property name="datanucleus.ConnectionURL" value="appengine"/> 
    </properties> 
</persistence-unit>

另外,我浏览了GAE测试设置文章,我的类路径上有所有必需的jar文件。知道升级中可能发生什么变化吗?

1 个答案:

答案 0 :(得分:1)

看起来这是Eclipse或Google Eclipse插件问题。在项目中&gt;检查GAE设置的属性。我甚至检查并取消选中它以确保它已打开。事实上,运行和调试模式可以完美地工作,但JUnit测试会失败。我只是试图再次解决这个问题,我注意到尽管Google设置中的复选框已经过检查,但Java路径中都缺少GWT和GAE库。非常奇怪,但现在Junit测试工作。