Google AppEngineのドキュメントによると:
バックエンドは、web.xmlで定義されたサーブレットのセットをメインのアプリケーションバージョンと共有します
GoogleEngineアプリでSpringFrameworkを使用しているため、web.xmlでSpring DispatcherServletのみを定義します。私の期待では、個別のURLを持つSpringサーブレットを「バックエンドインスタンス」としてトリガーできます。ただし、指定された「サブドメイン」でスプリングサーブレットの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は/で始まる必要があるため、スキーマでは許可されていません。