2014-12-02 5 views
0

안녕하세요 사용자가 데이터베이스에 있는지 확인하는 맞춤 시퀀스 (dblookup & 스위치 시퀀스)가있는 API가 있습니다. if 그것은 http 상태를 보내야합니다 401 : Unauthorized, 아래의 경우 코드입니다. 그러나 나는 항상 오류가 발생하여 전송 정보를 유추 할 수 없습니다. 응답 메시지를 보내는 올바른 방법은 무엇입니까?WSO2 APIM 시스템에서 /devtest/1.0/users/admin의 전송 정보를 추측 할 수 없습니다.

감사합니다, 드류

<case regex="0"> 
      <log level="custom"> 
       <property name="ucount" expression="fn:concat('User login - ', get-property('employee_count'))"/> 
      </log> 
     <send> 
       <property name="RESPONSE" value="true" scope="default"/> 
       <property name="NO_ENTITY_BODY" action="remove" scope="axis2"/> 
       <property name="HTTP_SC" value="401" scope="axis2"/> 
       <header name="To" action="remove"/>  
       <payloadFactory media-type="xml"> 
        <format> 
         <response> 
          <result>Unauthorized</result> 
         </response> 
        </format> 
        <args/> 
       </payloadFactory> 
     <send/> 
     </case> 

ERROR : send mediator

TID: [0] [AM] [2014-12-02 08:16:30,852] ERROR {org.apache.synapse.core.axis2.Axis2Sender} - Unexpected error during sending message out {org.apache.synapse.core.axis2.Axis2Sender} 
org.apache.axis2.AxisFault: The system cannot infer the transport information from the /devtest/1.0/users/admin URL. 
     at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:81) 
     at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:115) 
     at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) 
     at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:482) 
     at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:59) 
     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:338) 
     at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:94) 
     at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) 
     at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) 
     at org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:30) 
     at org.apache.synapse.config.xml.SwitchCase.mediate(SwitchCase.java:66) 
     at org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:123) 
     at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) 
     at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) 
     at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) 
     at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.mediate(APIManagerExtensionHandler.java:64) 
     at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.handleRequest(APIManagerExtensionHandler.java:180) 
     at org.apache.synapse.rest.API.process(API.java:285) 
     at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:83) 
     at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:64) 
     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) 
     at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
     at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) 
     at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:168) 
     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:744) 
TID: [0] [AM] [2014-12-02 08:16:30,853] INFO {org.apache.synapse.mediators.builtin.LogMediator} - STATUS = Executing default 'fault' sequence, ERROR_CODE = 0, ERROR_MESSAGE = Unexpected error during sending message out {org.apache.synapse.mediators.builtin.LogMediator} 

답변

2

가 다른 매개체를 정의 할 수 없습니다.

정확함;

<property name="RESPONSE" value="true" scope="default"/> 
       <property name="NO_ENTITY_BODY" action="remove" scope="axis2"/> 
       <property name="HTTP_SC" value="401" scope="axis2"/> 
       <header name="To" action="remove"/>  
       <payloadFactory media-type="xml"> 
        <format> 
         <response> 
          <result>Unauthorized</result> 
         </response> 
        </format> 
        <args/> 
       </payloadFactory> 


<send> 
      endpoint> 
      <address uri="ADDRESS OF YOUR ENDPOINT"/> 
     </endpoint> 
     </send> 
+0

실제로이 경우 엔드 포인트가 없습니다. 클라이언트에 401 응답을 보내려고합니다. 응답 조정자를 사용할 수 있습니까? –

+0

예 그렇다면 응답 매개자를 사용하십시오. – Ratha