Java 谷歌云端点在调用dev服务器(在本地主机上)时传递带有空字段的对象

Java 谷歌云端点在调用dev服务器(在本地主机上)时传递带有空字段的对象,java,eclipse,debugging,google-cloud-endpoints,Java,Eclipse,Debugging,Google Cloud Endpoints,当前,当从iOS客户端调用Google Cloud端点时,我遇到了一个奇怪的情况,即当调用appspot.com上的实例时,我的服务接收到一个合法对象,但当localhost上的dev服务器上的实例(从Eclipse内部启动)时,同一对象的字段都设置为null被称为 appspot.com上的java.version是1.7.0,而localhost上的1.7.0_45(即OSX上的Oracle java 7)。从日志文件来看,HTTP请求中传递的JSON看起来正常,反序列化报告两种情况下的正常

当前,当从iOS客户端调用Google Cloud端点时,我遇到了一个奇怪的情况,即当调用
appspot.com
上的实例时,我的服务接收到一个合法对象,但当
localhost
上的dev服务器上的实例(从Eclipse内部启动)时,同一对象的字段都设置为
null
被称为

appspot.com上的
java.version
1.7.0
,而
localhost上的
1.7.0_45
(即OSX上的Oracle java 7)。从日志文件来看,HTTP请求中传递的JSON看起来正常,反序列化报告两种情况下的正常活动


是否有其他人也遇到过这种情况并解决了开发服务器的问题(即在
localhost
上)?

是否尝试将HTTPMethod“Post”设置为方法注释?例如:

@ApiMethod(name = "setMyObject", path = "myObjectMethod", httpMethod = "POST")
public MyResponse setMyObject(MyClass obj) {}

出于某种原因,我发现需要将openapi规范重新部署到生产服务器,以便本地实例识别新的或更新的方法定义。我不知道为什么会这样,或者为什么这样做会有意义,但可能值得一试。

我现在面临着完全相同的问题:/n您是否设法找到了解决方案?我也有同样的问题,httpMethod是POST,但我仍然面临着这个问题。您是否从客户端或API explorer发送了实际的HTTP POST请求?你能附加一个代码片段吗?这是我的方法签名:@ApiMethod(path=“User/profile/update”,httpMethod=httpMethod.POST)public userprofiled到updateProfile(@Named(“sessionToken”)字符串sessionToken,UserProfileDto newProfile)抛出未经授权的异常{/*做一些工作*/}它在API资源管理器中工作正常,我正在为iOS客户端使用自动生成的RPC API。一切都很顺利,我对简单字符串类型的所有请求都很顺利。但是,使用Dto的请求不起作用。在后端接收时,Dto不是空的,但它的所有字段都是空的。我刚刚尝试下载了Java的Cloud backend Starter示例和iOS的相应示例客户端。我注释掉了推送通知的内容,因此我可以在模拟器中运行该示例。它与Dto对象中的null字段具有相同的行为,因此我猜这不是我的代码。可能需要进行一些配置。我对javascript客户端也有类似的情况。在devserver(localhost)上,如果我的对象缺少字段,则对于端点实现来说,这些字段为null。在prod.appspot.com上,调用被拒绝,其中@Named字段的“缺少必填字段”