【问题标题】:GAE Endpoint Error: can not access a member of class with modifiers "private"GAE 端点错误:无法访问带有修饰符“private”的类成员
【发布时间】:2015-07-24 03:23:24
【问题描述】:

我有一个 GAE API 端点,它不断给我一个 503 错误。 API Endpoint 正常工作(处理/将数据发布到数据存储区),但一旦返回对象,就会引发此错误:

java.lang.IllegalStateException: 无法实例化标准 串行器 (oftypecom.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.NullSerializer):Classcom.google.appengine.repackaged.org.codehaus.jackson.map.ser.BasicSeriaiizerFactory 无法访问班级成员 com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.NullSerializer 带有修饰符“私人”

返回的对象是一个扩展对象(FacebookUser extends User)。我认为这可能与访问基类私有变量有关,因此我将所有私有变量声明为受保护;我仍然不断收到此错误。

我有另一个端点,它返回一个 FacebookUser 对象,它工作正常。我将其解释为 GAE 序列化无法在返回时序列化对象;返回的数据是在一个工作端点中返回的许多相同数据。 API Endpoint 正常工作,但一旦返回对象和数据,就会抛出上述错误。

非常感谢任何输入,谢谢!

【问题讨论】:

    标签: java json api google-app-engine


    【解决方案1】:

    所以我想通了。

    我在 FacebookUser 类中有一个名为 getToken() 的函数。此函数不是私有/受保护变量的 getter/setter;它是一个将传入信息处理为令牌的函数。似乎 GAE Java API 假定 getToken 是名为“token”的私有变量的 getter/setter。由于没有一个名为“token”的私有变量,它抛出了我看到的错误。当我运行另一个未调用 getToken() 函数的函数时,它为 getToken() 函数抛出错误时,我想通了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-23
      • 2012-08-24
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      • 2014-01-02
      • 1970-01-01
      相关资源
      最近更新 更多