मैं बिलाव 8 कि परंपरागत रूप से WebSphere के अधीन ही कार्य के तहत एक जावा वेब परियोजना चलाने का प्रयास कर रहा हूँ देता है। एक सर्वलेट निम्नलिखित कॉल करता है:getServletContext()। GetRealPath (बिलाव 8 में) गलत पथ
xslFilePath = config.getServletContext().getRealPath(System.getProperty("file.separator") + "xsl");
कॉन्फ़िगर ServletConfig का एक उदाहरण है।
XSL परियोजना के अंदर है और सी के रूप में तैनात: \ MyProject \ निर्माण \ वेब \ XSL। \ Program Files \ Apache सॉफ्टवेयर फाउंडेशन \ अपाचे बिलाव 8.0.3 \ बिन \ अशक्त: जब सर्वलेट xslFilePath में स्थित एक फ़ाइल संदर्भ के लिए प्रयास करता है, मैं एक अपवाद है जो इंगित करता है कि बिलाव वास्तव में सी में XSL फ़ाइल की तलाश में है मिलता है। जाहिर है यह गलत स्थान है, और कुछ भी नहीं मिला है। क्योंकि मैं स्रोत के लिए पहुँच नहीं है
दुर्भाग्य से मैं कोड बदल नहीं सकते। तो मैं जानना चाहूंगा कि यह टोमकैट के लिए अपेक्षित व्यवहार है या नहीं? क्या कोई टॉमकैट कॉन्फ़िगरेशन है जो मुझे यह सुनिश्चित करने देगा कि पथ को तैनाती निर्देशिका में संदर्भित किया गया है, न कि टॉमकैट बिन निर्देशिका में? कुछ अन्य सर्वलेट कंटेनर चुनना बेहतर होगा? किसी भी सलाह की सराहना की जाएगी।
यह जवाब सही है, लेकिन यह सिर्फ गलत पथ विभाजक का उपयोग कर के बारे में नहीं है। टोमकैट के पहले संस्करणों को रीयलपैथ ("xsl") को प्रारंभिक विभाजक के साथ अनुमति नहीं मिली, लेकिन टॉमकैट 8 को "/ xsl" की आवश्यकता होती है (अन्यथा शून्य वापस आती है)। इसने मेरे कई निजी वेब अनुप्रयोगों को तोड़ दिया है, जिनमें से अधिकांश टॉमकैट 5 के दिनों से अपरिवर्तित बचे हैं ... – sam