url-mapping 或 uri-template 值在调用期间附加到端点
url-maping or uri-template value appended to endoint during call
我的 wso2 esb 中有一个资源
<resource methods="POST" protocol="http" uri-template="/ft">
<inSequence>
<sequence key="T24InSequence"/>
</inSequence>
<outSequence>
<sequence key="T24OutSequence"/>
</outSequence>
</resorce>
我有一个正在 T24 Sequence
中调用的 wsdl 端点
<?xml version="1.0" encoding="UTF-8"?>
<endpoint name="operationsDbWsdlEndpoint" xmlns="http://ws.apache.org/ns/synapse">
<wsdl port="HTTPEndpoint" service="mfb_transact_service" uri="http://localhost:8290/services/mfb_transact_service?wsdl">
<suspendOnFailure>
<initialDuration>-1</initialDuration>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
</markForSuspension>
</wsdl>
</endpoint>
我按以下方式调用端点
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="T24InsertCashinDBSquence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<log level="full">
<property name="DBACTION" value="=================== INSERT INTO CASHIN DB =================="/>
</log>
<property expression="get-property('SYSTEM_DATE','yyyy-MM-dd HH:mm:ss')" name="requestTime" scope="default" type="STRING"/>
<payloadFactory media-type="xml">
<format>
<p:insert_sop_t24FT_operation xmlns:p="t24FT">
<!--Exactly 1 occurrence -->
<xs:sopRequestId xmlns:xs="t24FT"></xs:sopRequestId>
<!--Exactly 1 occurrence -->
<xs:destinationInstitutionCode xmlns:xs="t24FT"></xs:destinationInstitutionCode>
<!--Exactly 1 occurrence -->
<xs:destinationAccountNumber xmlns:xs="t24FT">
</xs:destinationAccountNumber>
<!--Exactly 1 occurrence -->
<xs:sourceInstitutionCode xmlns:xs="t24FT">
</xs:sourceInstitutionCode>
...
</p:insert_sop_t24FT_operation>
</format>
<args>
<arg evaluator="json" expression="$.requestID"/>
<arg evaluator="json" expression="$.destinationInstitutionCode"/>
<arg evaluator="json" expression="$.destinationAccountNumber"/>
<arg evaluator="json" expression="$.sourceInstitutionCode"/>
...
</args>
</payloadFactory>
<property name="FORCE_ERROR_ON_SOAP_FAULT" scope="default" type="STRING" value="true"/>
<callout endpointKey="operationsDbWsdlEndpoint">
<source type="envelope"/>
<target key="response"/>
</callout>
</sequence>
我无法弄清楚为什么当我调用端点时出现以下错误
Error processing POST request for : /services/mfb_transact_service.HTTPEndpoint/ft org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /services/mfb_transact_service.HTTPEndpoint/ft and the WSA Action = null. If this EPR was previously reachable, please contact the server administrator.
所以 wso2 似乎将 /ft
附加到 wsdl url
您可以尝试在标注调解器之前添加以下内容吗?
<property name="REST_URL_POSTFIX" action="remove" scope="axis2"/>
我的 wso2 esb 中有一个资源
<resource methods="POST" protocol="http" uri-template="/ft">
<inSequence>
<sequence key="T24InSequence"/>
</inSequence>
<outSequence>
<sequence key="T24OutSequence"/>
</outSequence>
</resorce>
我有一个正在 T24 Sequence
<?xml version="1.0" encoding="UTF-8"?>
<endpoint name="operationsDbWsdlEndpoint" xmlns="http://ws.apache.org/ns/synapse">
<wsdl port="HTTPEndpoint" service="mfb_transact_service" uri="http://localhost:8290/services/mfb_transact_service?wsdl">
<suspendOnFailure>
<initialDuration>-1</initialDuration>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
</markForSuspension>
</wsdl>
</endpoint>
我按以下方式调用端点
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="T24InsertCashinDBSquence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<log level="full">
<property name="DBACTION" value="=================== INSERT INTO CASHIN DB =================="/>
</log>
<property expression="get-property('SYSTEM_DATE','yyyy-MM-dd HH:mm:ss')" name="requestTime" scope="default" type="STRING"/>
<payloadFactory media-type="xml">
<format>
<p:insert_sop_t24FT_operation xmlns:p="t24FT">
<!--Exactly 1 occurrence -->
<xs:sopRequestId xmlns:xs="t24FT"></xs:sopRequestId>
<!--Exactly 1 occurrence -->
<xs:destinationInstitutionCode xmlns:xs="t24FT"></xs:destinationInstitutionCode>
<!--Exactly 1 occurrence -->
<xs:destinationAccountNumber xmlns:xs="t24FT">
</xs:destinationAccountNumber>
<!--Exactly 1 occurrence -->
<xs:sourceInstitutionCode xmlns:xs="t24FT">
</xs:sourceInstitutionCode>
...
</p:insert_sop_t24FT_operation>
</format>
<args>
<arg evaluator="json" expression="$.requestID"/>
<arg evaluator="json" expression="$.destinationInstitutionCode"/>
<arg evaluator="json" expression="$.destinationAccountNumber"/>
<arg evaluator="json" expression="$.sourceInstitutionCode"/>
...
</args>
</payloadFactory>
<property name="FORCE_ERROR_ON_SOAP_FAULT" scope="default" type="STRING" value="true"/>
<callout endpointKey="operationsDbWsdlEndpoint">
<source type="envelope"/>
<target key="response"/>
</callout>
</sequence>
我无法弄清楚为什么当我调用端点时出现以下错误
Error processing POST request for : /services/mfb_transact_service.HTTPEndpoint/ft org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /services/mfb_transact_service.HTTPEndpoint/ft and the WSA Action = null. If this EPR was previously reachable, please contact the server administrator.
所以 wso2 似乎将 /ft
附加到 wsdl url
您可以尝试在标注调解器之前添加以下内容吗?
<property name="REST_URL_POSTFIX" action="remove" scope="axis2"/>