2014-03-28 5 views
0

필요한 입력 매개 변수가없는 xml-script에서 서비스를 호출하려고하면 ServiceException이 발생하고 200 상태의 브라우저로 호출이 반환됩니다. 내가 어떻게 오류를 잡거나 그렇지 않으면 그것을 다루기로되어 있는지 보지 못한다. 서비스를 호출하기 전에 완전성을 테스트해야합니까? 그리고 500 수준의 상태가 생성되어 반환되지 않는 이유는 무엇입니까?변환 내 xml-script 오류 처리 방법

+0

서비스를 호출하는 방법과 같은 정보를 추가 하시겠습니까? 예를 들어 트랜지션 정의가 어떻게 보이는지, 어떻게 트랜지션을 호출하는지, 입력을 처리하고 뷰 스크린으로 리다이렉트, 자바 스크립트 클라이언트 등의 데이터를 얻는 방법 등이 트랜지션에 포함되어 있는가? –

답변

0

스크립트가 잘못되었을 때 messageFacade에 오류가 추가되어 ec.message.hasError()를 통해 전환 또는 서비스중인 XML 스크립트에 오류가 있는지 여부를 감지 할 수 있습니다. 스크립트에 예외 대신 논리 오류가있는 경우 직접 messageFacade에 오류를 추가해야합니다.

그런 다음 클라이언트에 응답을 반환하기 전에 조건부 응답에서 ec.message.hasError()를 확인하고 ec.web.response.setStatus()를 사용하여 원하는 코드 (사용자의 경우 500 개)를 반환해야합니다.

<transition name="createSample"> 
    <actions> 
     ... some service-call or xml-actions ... 
     <if condition="ec.message.hasError()"> 
      ec.web.response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR) 
     </if> 
    </actions> 
    <conditional-response type="none"> 
     <condition> 
      <expression>ec.message.hasError()</expression> 
     </condition> 
    </conditional-response> 
    <default-response url="."/> 
</transition>