2017-03-08 2 views
0

CSV를 렌더링하는 Alfresco Web Script를 작성 했으므로 잘 작동합니다.웹 스크립트 오류 500 템플릿이 무시되었습니다.

특별한 경우에 웹 스크립트를 return an error 500 as JSON으로 바꾸고 싶습니다. 따라서 .json.500.ftl 템플릿을 작성했습니다.

문제 : 오류 500은 항상 HTML (기본 웹 스크립트 오류 템플릿)으로 표시됩니다.
내가 뭘 잘못 했니?

내 파일 :

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 포함 포함

<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/에 있고 나는 프레스코을 다시 시작했다. 라인 위

+0

시도는 다음과 같이 호출은 http : // localhost를 : 8080/야외/서비스/ 나는 형식을 추가 theapp/AUDITLOG 형식 = JSON = 마지막에서 JSON? . 그러나 형식의 원래 요청 매개 변수에 영향을 줄 수 있습니다. –

+0

@MuralidharanDeenathayalan : JSON이 제대로 반환됩니다. 모든 것이 잘 풀리면 CSV를 얻으려고했지만 오류 500의 경우에만 JSON을 받으십시오. 아마도 웹 스크립트 기술은 그런 의도가 아닙니다. –

+1

자바 백업 웹 스크립트 인 IIRC를 사용하는 경우 웹 스크립트 리턴 형식을 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를 반환 함)이 웹 스크립트 시스템을 조정하지 않으면 구현할 수 없다는 결론입니다. –

+0

당신을 얻지 못했습니다. –

+0

먼저, 당신은 아무것도 언급하지 않은 HTML 템플릿을, 두 번째는 서버가 500 오류를 리턴한다면 500.ftl을 정의 할 것입니다. 나는 태그가 어떻게 작동하는지 읽어야한다고 생각합니다. 설명자. –