2012-10-15 20 views
10

मैं एक बाकी सेवा है जो एक रूप/{पैरामीटर} में पैरामीटर स्वीकारअपाचे mod_proxy यूआरएल एन्कोडिंग

इसके अलावा Apache2 कि websevice करने के लिए अनुरोध अग्रेषित करता है

<VirtualHost *:9091> 
    AllowEncodedSlashes NoDecode 
    LogLevel debug 
    ProxyPass /webservice balancer://api/webservice 

    <Proxy balancer://api> 
    BalancerMember http://localhost:8030 
    </Proxy> 
</VirtualHost> 

पैरामीटर की तरह, इनकोडिंग वर्ण हो सकते हैं % 2f (/)

समस्या यह है कि अपाचे फिर से इन पात्रों को कूटबद्ध है, और वेब सेवा% 2F के बजाय% 252F प्राप्त करता

[Mon Oct 15 13:59:24 2012] [debug] mod_proxy_balancer.c(46): proxy: BALANCER: canonicalising URL //api/webservice/Interface GigabitEthernet1%2F0%2F2 
[Mon Oct 15 13:59:24 2012] [debug] mod_proxy_balancer.c(581): proxy: BALANCER (balancer://api) worker (http://localhost:8030) rewritten to http://localhost:8030/Interface%20GigabitEthernet1%252F0%252F2%20Utilization 

यदि मैं सीधे webservice से अनुरोध करता हूं, तो टोमकैट/जेट्टी इसे ढूंढता है और सेवा सही पैरामीटर प्राप्त करता है।

उत्तर

1

थोड़ा सा को निर्दिष्ट विषय बंद के बाद से इस स्लैश के साथ समस्या का समाधान नहीं है, लेकिन मैं इसे यहाँ वैसे भी जोड़ देगा, अगर किसी और को एक ही समस्या में चलाता है के रूप में मैं था द्वारा हल।

मुझे एक ही समस्या थी कि यूआरएल पैरामीटर में स्वीडिश विशेष वर्ण (åäö) apache प्रॉक्सी के माध्यम से पारित होने पर सही ढंग से संभाला नहीं गया था। यह पता चला कि अपाचे ठीक कर रहा था लेकिन प्राप्त करने वाले टोमकैट उदाहरण में एजेपी-कनेक्टर URIEncoding कॉन्फ़िगरेशन खो रहा था।

मेरी बिल्ला server.xml से

:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8080" URIEncoding="UTF-8"/> 
संबंधित मुद्दे