수신 HTTP 요청 헤더의 값으로 속성을 설정하는 방법은 무엇입니까? 몇 가지 시도했는데 (다음 참조), 로그 값이 모두 null이므로 머리글 값을 정확하게 읽지 못합니다. 정말 신경 쓰이는 헤더 값은 X-EMPID입니다. wso2esb 사용 4.8.1.esb에서 http 헤더를 읽는 방법
couple이 posts인데, 이것이 작동한다고 믿게 만들었지 만, 나는 아직 행운이 없습니다.
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="getaccount2"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="empid"
expression="get-property('transport', 'X-EMPID')"
scope="default"
type="STRING"/>
<log level="custom">
<property name="emp_id" expression="get-property('empid')"/>
</log>
<log level="custom">
<property name="content_length"
expression="get-property('transport', 'Content-Length')"/>
</log>
<log level="custom">
<property name="TRANSPORT_HEADERS" expression="get-property('TRANSPORT_HEADERS')"/>
</log>
BTW, 아파치에서 X-EMPID 값을 설정하고 리버스 프록시 (RequestHeader 사용)를 통해 ESB로 보내고 있습니다. 나는 헤더가 전송된다는 것을 안다 - 나는 패킷 포착을 수행하고 wireshark로 그것을 체크 아웃했다. –
get-property ('transport', 'X-EMPID')는 'X-EMPID'라는 HTTP 헤더를 얻는 좋은 방법입니다. 속성이 null이면 WSO2 ESB가받은 요청에서이 헤더를 찾을 수 없습니다. ESB_HOME/bin에 tcpmon이 있습니다. WSO2 앞에 사용하여 요청 내용을 확인하십시오. –
대단히 감사합니다. 나는 그 도구에 대해 몰랐습니다. 매우 도움이되었습니다. 그것은 내가 그것의 바닥에 도착하는 것을 도왔다. 나는 실제 서비스 엔드 포인트에 프록시를하지는 않았지만 관리 인터페이스에 프록시를 사용했다.하지만 추가 한 헤더를 모두 제거했다고 생각한다. 나는 기대했던대로 일할 것이있다. –