セットアップ:
ESRIのjavascriptAPIv。2.8を使用していますが、ESRI自体はdojoツールキットv。1.6を使用しています。AmazonのEC2のWindowsでArcGISServerv。10.1を実行しています。
サーバーにJSONをPOSTするjavascriptを使用してPrintTaskを正常に実行できます。サーバーはプロセスを実行し、PDFをクライアントブラウザーに返します。ただし、このリクエストは同期的であり、1〜2分かかることがあるため、HerokuはH12エラーでタイムアウトします。
問題:
ArcGISサーバーで[]AsynchronousチェックボックスをONに切り替えると、PrintTaskは次のように戻ります。
{"error":{"code":500,"message":"Error performing execute operation","details":[]}}
ここからどこへ行けばいいのかわからない。ArcGISサーバーで非同期印刷タスクを実行した例や経験はありますか?
printTaskのJavaScriptは以下のとおりです。このJavaScriptをより非同期、つまり「ノンブロッキング」に書き直す方法はありますか?
コード
(簡潔にするために削除)
dojo.require("esri.tasks.PrintTask");
function Print() {
var printTool = this;
this.executePrint = function(){
var params = new esri.tasks.PrintParameters();
params.map = map;
params.template = selectedTemplate;
printTask = new esri.tasks.PrintTask(printUrl, {async: true});
printTask.execute(params, printTool.printComplete, printTool.printError);
};
this.printComplete = function(result){
dojo.place("<div><a href='" + result.url + "'></a></div>", printForm, "last");
};
this.printError = function(err){
dojo.byId("printJob").innerHTML = err;
};
}