2014-11-06 2 views
0

오류 응답을 가로 채고 기록하거나 변환해야하는 끝점이 있습니다. 나는 결함 시퀀스를 포함하고 가능한 모든 오류를 기록하고있다. 하지만 나는 500 Internal Server Error를 가로 챌 수 없습니다. 이걸 좀 도와 주실 래요?WSO2에서 500 내부 서버 오류를 가로채는 방법 ESB

아래를 참조하십시오.

<endpoint xmlns="http://ws.apache.org/ns/synapse"> 
<address uri="https://<Hostname/WebServiceName>" format="soap11"> 
    <suspendOnFailure> 
    <progressionFactor>1.0</progressionFactor> 
    </suspendOnFailure> 
    <markForSuspension> 
    <errorCodes>500</errorCodes> 
    <retriesBeforeSuspension>0</retriesBeforeSuspension> 
    <retryDelay>0</retryDelay> 
    </markForSuspension> 
    <timeout> 
    <duration>100</duration> 
    <responseAction>fault</responseAction> 
    </timeout> 
    <enableSec policy="conf:/repository/esb/policies/Sign-UT-Policy.xml"/> 
</address> 
</endpoint> 

위와 같이 TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "HTTP/1.1 500 Internal Server Error[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "Set-Cookie: CSQA9IBCOOKIE=R2172309488; path=/[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "Content-Type: application/json[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "X-Powered-By: Servlet/2.5 JSP/2.1[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "Date: Thu, 06 Nov 2014 14:21:08 GMT[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "Server: WSO2-PassThrough-HTTP[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "Transfer-Encoding: chunked[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "Connection: Keep-Alive[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "1f[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "{"getMyClsScheduleResponse":""}[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "0[\r][\n]" {org.apache.synapse.transport.http.wire} TID: [0] [ESB] [2014-11-06 09:21:08,790] DEBUG {org.apache.synapse.transport.http.wire} - << "[\r][\n]" {org.apache.synapse.transport.http.wire}

에러 로그, 나 로그에서 500 내부 서버 오류가 있지만, 그 결함이 순서로 전송되지.

어떤 아이디어가 도움이 될 것이다 ..

감사 Kranthi

답변

1

을 잡을 수 있는지 여부를 확인 API/Proxy에서 다음 매개 변수를 사용하여 http 오류 코드를 오류 순서로 다시 보내야합니다.

<inSequence> 
     <property name="FORCE_ERROR_ON_SOAP_FAULT" value="true" scope="default" type="STRING"/> 
</inSequence> 

엔드 포인트 제한 시간 설정의 매개 변수 <responseAction> 당신의 잘못 시퀀스의 이름이 아닌, 그냥 컨트롤이 고장 순서로 전송한다 또는 폐기 여부를 언급하고있다.

<timeout> 
<duration>100</duration> 
<responseAction>fault</responseAction> 

는 프록시 코딩

<proxy xmlns="http://ws.apache.org/ns/synapse" name="StudentDashboardAcademics" transports="https http" startOnLoad="true" trace="disable"> 
     <target faultSequence="StudashFault"> 
<endpoint key="conf:/repository/esb/endpoints/CSIB_Dynamic.xml"/> 
     <inSequence> 
      <property name="Accept" expression="$trp:Accept" scope="default" type="STRING"/> 
      <property name="FORCE_ERROR_ON_SOAP_FAULT" value="true" scope="default" type="STRING"/> 
     </inSequence> 

행운 모두에서 언급 한 라우팅 할 수있는 오류 시퀀스의 이름 ...

베스트 소원 크란 티

0

프록시에 오류 순서를 추가하고 당신은 내가 지난 몇 개월 동안 배운 오류 여부를

관련 문제