GAE后端实例调用和Spring集成

时间:2013-01-21 21:32:43

标签: java google-app-engine spring-mvc google-api

Google应用引擎文档说:

  

后端与您的主应用程序版本

共享web.xml中定义的servlet集

我们在google引擎应用程序中使用Spring Framework,因此我们在web.xml中只定义了spring dispatcherServlet,我期望具有单独url的Spring servlet可以作为“后端实例”触发。但是我不知道如何在给定的“子域”上定义spring servlet的url。

我正在尝试使用队列任务“doStuffQueue”调用后端“myBackendId”:

Queue queue = QueueFactory.getQueue("doStuffQueue");
TaskOptions taskOptions = TaskOptions.Builder.withUrl("/doTask/")
             .param("someParam", someParam)
             .header("Host", BackendServiceFactory.getBackendService().getBackendAddress("myBackendId"))
             .method(Method.POST);
   queue.add(taskOptions);

但上面的TaskOption将此作为标准前端实例运行,因为子域名被忽略,因此调用此URL:

 myAppId.appspot.com/doTask

作为解决方法,我试图像这样定义TaskOption:

 TaskOptions.Builder.withUrl("myBackendId.myAppId.appspot.com/doTask")

但由于url必须以 /

开头,因此架构中不允许这样做

1 个答案:

答案 0 :(得分:0)

您的代码是正确的,我想您可能在注释定义中遇到问题。

确保您使用的是RequestMethod.POST。此外,我相信您可能必须使用“/ task / doTask”启动任务URL,例如:

@RequestMapping(value =“/ task / doTask”,method = {RequestMethod.POST})