【问题标题】:java.lang.IllegalArgumentException: Multiple values for same key 'request'java.lang.IllegalArgumentException:同一键“请求”的多个值
【发布时间】:2013-10-29 19:37:35
【问题描述】:

有人知道这个错误是什么意思吗?它来自 Google Cloud Endpoints 处理器,错误消息没有详细说明它发生的位置。这是我在错误日志中看到的完整堆栈跟踪:

com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmGenerationException: java.lang.IllegalArgumentException: Multiple values for same key 'request'

更新:

通过反复试验,我发现了有问题的方法签名:

@ApiMethod(name = "createMasterDefaultCampaignsAndScriptsAndSchedules", path = "createMasterDefaultCampaignsAndScriptsAndSchedules", httpMethod = HttpMethod.GET)
public ArrayList<Campaign> createMasterDefaultCampaignsAndScriptsAndSchedules(Calendar pCalendar, Company pCompany) {

这是怎么回事?

【问题讨论】:

  • 作为一种解决方法,我最终不得不传递 JDO 对象的 id,然后将其从数据存储中拉回,这非常有效。我认为这是一个错误并提出了一个问题:code.google.com/p/googleappengine/issues/…

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


【解决方案1】:

端点只允许一个实体类型参数。您必须将所有参数包含在一个类中。

【讨论】:

    【解决方案2】:

    这没有意义,我有一个api方法:

    @ApiMethod(name = "saveProgress", httpMethod = HttpMethod.POST)
    public void saveProgress(Progress progress, Token token){
    }
    

    他们强迫我将这两个不相关的对象progresstoken 合并到一个类中,这使它看起来非常不可读。

    【讨论】:

    • 是的,这很糟糕,但这是强类型世界的缺点。在 Javascript 中添加或删除对象的属性非常简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2022-08-18
    • 2015-06-05
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2019-01-08
    相关资源
    最近更新 更多