How to preserve the Content-Type header of a Tomcat HTTP response sent through an AJP connector to Apache using mod_proxy -
मुझे एक ग़लत HTTP प्रतिक्रिया सामग्री-प्रकार
शीर्षक के साथ एक समस्या है जबकि एक एक्सिस 2 वेब सेवा एक AJP / 1.3 कनेक्टर के माध्यम से अपाचे के पीछे बिलाव में की मेजबानी की।
मैं अपने RESTful इंटरफेस के माध्यम से ब्राउज़र में समस्याओं के बिना वेब सेवा का उपयोग कर सकते हैं और मैं परिणाम देख सकते हैं, लेकिन किसी भी तरह अपाचे प्रतिक्रिया बदल रहा है < टोकरेट द्वारा text / xml
से text / plain
कोड> सामग्री-प्रकार हेडर भेजा गया है और यह मुझे NetBeans में SOAP के माध्यम से वेब सेवा लेने से रोकता है, क्योंकि असमर्थित सामग्री-प्रकार: पाठ / सादे समर्थित हैं: [text / xml]
अपवाद।
यहां मेरे अपाचे vhosts कॉन्फ़िगरेशन का संबंधित अनुभाग है:
< प्री> & lt; VirtualHost *: 80 & gt; ServerAdmin me@myserver.example सर्वर नाम myserver.example सर्वर का other.myserver.example ProxyPreserveHost setenv पर बल-प्रॉक्सी-अनुरोध-1.0 1 setenv प्रॉक्सी-nokeepalive 1 & LT; स्थान / Axis2 / सेवाओं & gt; ProxyPass ajp: // localhost: 8009 / axis2 / सेवाओं प्रॉक्सीपैसेआरवर्स एजेपी: // स्थानीयहोस्ट: 800 9 / एक्षी 2 / सेवा & lt; / स्थान & gt; & Lt; / VirtualHost & gt;
और मेरे टॉमकेट सर्वर। Xml का संबंधित अनुभाग:
& lt; कनेक्टर पोर्ट = "8009" प्रोटोकॉल = "एजेपी / 1.3" रीडायरपोर्ट = " 9 443 "/ & gt; & LT; कनेक्टर बंदरगाह = "9443" प्रोटोकॉल = "HTTP / 1.1" SSLEnabled = "true" maxHttpHeaderSize = "8192" maxThreads = "150" minSpareThreads = "25" maxSpareThreads = "75" enableLookups = "false" disableUploadTimeout = "true" acceptCount = "100" योजना = "https" सुरक्षित = "true" clientAuth = "false" sslProtocol = "टीएलएस" SSLCertificateFile = "पथ / / बंडल करने" SSLCertificateKeyFile = "path / to / कुंजी" SSLPassword = "S3cr3t" proxyName = "Myserver.example" प्रॉक्सीपोर्ट = "443" / & gt;
अगर मैं पोर्ट 8080 पर डिफॉल्ट कनेक्टर का उपयोग करके डब्लूएस सीधे टॉमकेट में पहुँचता हूं तो मुझे सही content-type
मिलता है, लेकिन अगर मैं इसे अपाचे के माध्यम से एक्सेस करता हूं तो मुझे मिल जाता है text / plain
, इसलिए यह निश्चित रूप से प्रॉक्सी के साथ एक समस्या है।
मैं इस समस्या को कैसे हल कर सकता हूं?
संपादित करें: मुझे इसे एजेपी के बजाय प्रॉक्सीिंग के लिए टोमैक HTTP कनेक्टर का उपयोग करके काम करने के लिए मिला, लेकिन अगर मैं एक कार्यशील समाधान मिल रहा है तो मैं mod_ajp का उपयोग करना पसंद करूंगा।
मैंने अभी
ProxyPass AJP: // स्थानीय होस्ट: 8009 / Axis2 / सेवाओं ProxyPassReverse AJP: // स्थानीय होस्ट: 8009 / Axis2 / सेवाओं
के लिए लाइनों
ProxyPass http: // localhost: 8080 / Axis2 / सेवाओं ProxyPassReverse http: // localhost: 8080 / Axis2 / सेवाओं
# DefaultType: डिफ़ॉल्ट माइम प्रकार सर्वर एक दस्तावेज़ # के लिए उपयोग करेगा # अगर वह अन्यथा निर्धारित नहीं कर सकता है, जैसे फ़ाइल नाम एक्सटेंशन से # यदि आपके सर्वर में ज्यादातर पाठ या HTML दस्तावेज़ हैं, तो "पाठ / सादे" # अच्छा मान है यदि आपकी अधिकांश सामग्री द्विआधारी है, जैसे अनुप्रयोग # या छवियां, तो आप ब्राउज़र्स को बाइनरी फ़ाइलों को प्रदर्शित करने की कोशिश करने के बजाय "एप्लिकेशन / octet-stream" का उपयोग करना चाहते हैं, हालांकि वे # टेक्स्ट हैं # DefaultType None
यह समाधान है Httpd.conf में इस भाग को देखें, यह महत्वपूर्ण है कि DefalutType कोई नहीं है यदि आप सादा / पाठ देखते हैं तो यह समस्या है क्षमा करें, यह समाधान मेरा नहीं है, लेकिन मुझे यह पता नहीं है कि मैंने इसे किस ब्लॉग पर पाया है: -)
Comments
Post a Comment