2017-03-08 11 views
0

CSVをレンダリングするAlfresco Web Scriptを作成しました。うまくいきます。Webスクリプトエラー500テンプレートが無視されました

特定のケースでは、Web Scriptをreturn an error 500 as JSONにしたいので、私は.json.500.ftlのテンプレートを書きました。

問題:エラー500は、常にHTML(デフォルトのWebスクリプトエラーテンプレート)として表示されます。
どうしたのですか?

マイファイル:

<webscript> 
    <shortname>Audit Log Web Script</shortname> 
    <description>Returns audit data for a given day</description> 
    <url>/theapp/auditlog</url> 
    <authentication>admin</authentication> 
    <format default="csv"></format> 
</webscript> 

これらのファイルのすべてがtomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/templates/webscripts/であると私はのAlfrescoを再起動した:

auditlog.get.desc.xml 
auditlog.get.csv.ftl 
auditlog.get.json.500.ftl 

auditlog.get.json.500.ftlだけ含まれてい{"error": "abc is not correct"}

auditlog.get.desc.xmlが含まれています。線の上

+0

てみてくださいは、次のように呼び出すには、http:// localhostを:8080 /屋外/サービス/ <ウル余分な名前空間の任意>私は書式を追加theapp /監査ログフォーマット= JSON =最後のJSON? 。しかし、それはフォーマットの元の要求パラメタに影響するかもしれません。 –

+0

@MuralidharanDeenathayalan:JSONが正しく返されます。私はすべてがうまくいくならばCSVを得ることを望んでいましたが、エラー500の場合にのみJSONを取得します。おそらく、ウェブスクリプト技術はそうするつもりはありませんか? –

+1

JavaでサポートされているWebスクリプト、IIRCを使用している場合は、WebScriptのリターン形式をJSONに上書きできます。 'org.springframework.extensions.webscripts.DeclarativeWebScript'と' org.springframework.extensions.webscripts.DeclarativeWebScript.renderFormatTemplate(String、Map 、Writer) 'メソッドを参照してください。 –

答えて

2
<format default="csv"></format> 

あなたのケースではありません「auditlog.get.csv.500.ftl」名でテンプレートを取得しようとします。

URLに別のパラメータを渡す場合は、次のように異なるレスポンステンプレートを取得しようとします。

"http://localhost:8080/share/service/demo/webscript?format=json"

+0

結論として、私の要件(CSVはOKですが、JSONはKOです)はWeb Scriptsシステムを調整することなく実装できません。 –

+0

あなたを入手できませんでした。 –

+0

最初に、何もHTMLテンプレートが何も言及していない、2番目はサーバーが500エラーを返した場合、それを定義したように500.ftlをレンダリングします。タグの仕組みを読むべきだと思います。記述子内にある。 –

関連する問題