无法在AppEngine 1.8.2中使用最新的Cloud Endpoint Backend默认值

时间:2013-07-19 15:06:52

标签: google-app-engine datanucleus google-cloud-endpoints

我过去使用AppEngine 1.7,JRE 1.6和其他Google帐户成功创建了多个端点。我的数据类非常接近教程示例。

使用新项目,我无法持久保存非常简单的bean,从API Explorer运行时收到以下错误。在本地运行和在AppEngine上运行时都会发生此错误。

  

500内部服务器错误{“错误”:{“message”:   “javax.jdo.JDOFatalInternalException:传递给的键值   构造一个类型为“”的SingleFieldIdentity   javax.jdo.identity.StringIdentity \“for class \”class   com.jdub.minorplanets.MapSector \“是   空\ nNestedThrowables:\ norg.datanucleus.exceptions.NucleusException:   传递给构造SingleFieldIdentity类型的键值   类“类”的“类javax.jdo.identity.StringIdentity”   com.jdub.minorplanets.MapSector \“is null。”,“code”:503,
  “错误”:[{       “域名”:“全球”,       “reason”:“backendError”,       “message”:“javax.jdo.JDOFatalInternalException:传递给构造类型为\”的SingleFieldIdentity的键值   javax.jdo.identity.StringIdentity \“for class \”class   com.jdub.minorplanets.MapSector \“是   空\ nNestedThrowables:\ norg.datanucleus.exceptions.NucleusException:   传递给构造SingleFieldIdentity类型的键值   类“类”的“类javax.jdo.identity.StringIdentity”   com.jdub.minorplanets.MapSector \“为null。” }]}}

我的数据类非常简单,即使是最精简的版本也会出现错误:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class MapSector {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String encodedKey;

@Persistent private String sectorID;  

public MapSector(String sectorID) {
    super();
    this.sectorID = sectorID;
}

public MapSector() {
    super();
}


public String getEncodedKey() {
    return encodedKey;
}

/**
 * @return the sectorID
 */
public String getSectorID() {
    return sectorID;
}

/**
 * @param sectorID the sectorID to set
 */
public void setSectorID(String sectorID) {
    this.sectorID = sectorID;
}
}

使用Eclipse插件完全生成端点。

此时,我认为数据核增强器在该项目中没有正确启动。我看到的唯一区别是在新的Project和Java 1.7中使用了App Engine 1.8.2。虽然我也使用不同的谷歌帐户,但我不相信这是问题,因为我也收到了localhost上的错误。

以下是项目使用的库:

  • 应用服务引擎的API-1.0-SDK-1.8.2.jar
  • 应用服务引擎的API-labs.jar
  • 应用服务引擎-endpoints.jar
  • 应用服务引擎-jsr107cache-1.8.2.jar
  • ASM-4.0.jar
  • DataNucleus将-API-JDO-3.1.3.jar
  • DataNucleus将-API的JP-A-3.1.3.jar
  • DataNucleus将-的AppEngine-2.1.2.jar
  • datanucleus.core-3.1.3.jar
  • GCM-的server.jar
  • 的geronimo-jpa_2.0_spec-1.0.jar
  • JDO-API-3.0.1.jar
  • json_simple-1.1.jar
  • jsr107.cache-1.1.jar
  • JTA-1.1.jar

这让我疯了。我已经反复比较我的工作项目和示例代码,并没有看到问题。我也没有看到报告的类似错误。

我需要更改配置以使端点/ datanucleus / appengine代码正确设置标识?

我尝试过的其他事情:

  1. 我现在尝试恢复到Java 1.6而没有任何好处。
  2. 我现在删除了后端项目并重新创建。

1 个答案:

答案 0 :(得分:0)

我希望这就是你要找的东西。我去过那儿,开车送我疯了。 它对我有用。

https://stackoverflow.com/a/15014679/2695621

干杯