2012-04-02 12 views
5

वेबस्पेयर v.6 से वेबस्पेयर v.8 तक एक विरासत अनुप्रयोग माइग्रेट करना। एप्लिकेशन के web.xml में केवल servlets की घोषणाएं हैं लेकिन सर्वलेट-मैपिंग नहीं हैं। फिर भी सर्वलेट मैपिंग के बिना सभी सर्वलेट डिफ़ॉल्ट यूआरएल पैटर्न/सर्वलेट/[सर्वलेट नाम] द्वारा पहुंचा जा सकता है। ढीला डिफ़ॉल्ट मानचित्रणवेबस्पेयर 8, web.xml संस्करण = "3.0", डिफ़ॉल्ट सर्वलेट-मैपिंग?

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     **version="3.0"**> 

सर्वलेट्स और स्पष्ट रूप से अन्यथा मैप किया जाने वाला यह 404 पृष्ठ नहीं मिला है की जरूरत है: हालांकि, WAS8 पर, "3.0" करने के लिए सेट करता है, तो web.xml विशेषता संस्करण के साथ अद्यतन किया जाता है।

क्या सभी सर्वलेट्स के लिए एक डिफ़ॉल्ट यूआरएल पैटर्न को परिभाषित करने के लिए सर्वलेट 3.0 या कम से कम WebSphere 8 में कोई तरीका है? टॉमकैट के लिए InvokerServlet है, क्या इसका वेबस्पेयर v.8 के लिए एक संस्करण है?

उत्तर

3

वेबस्पेयर के पुराने संस्करणों को मालिकाना ibm-web - *। Xmi डिस्क्रिप्टर विक्रेता विशिष्ट तैनाती विकल्पों को परिभाषित करने के लिए बाहर करता है। हालांकि, चूंकि v8.0 .xmi फ़ाइलों के लिए समर्थन छोड़ दिया गया है (फिर भी अभी भी सर्वलेट "2.4" के रूप में घोषित अनुप्रयोगों में पिछड़ा संगतता के लिए समर्थित है)।

<?xml version="1.0" encoding="UTF-8"?> 
<com.ibm.ejs.models.base.extensions.webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:com.ibm.ejs.models.base.extensions.webappext="webappext.xmi" xmi:id="WebApp_ID_Ext" reloadingEnabled="true" fileServingEnabled="true" directoryBrowsingEnabled="false" serveServletsByClassnameEnabled="true"> 
    <webApp href="WEB-INF/web.xml#cchange"/> 
    <extendedServlets xmi:id="ServletExtension_1"> 
    <extendedServlet href="WEB-INF/web.xml#Servlet_1"/> 
    </extendedServlets> 
    <jspAttributes xmi:id="JSPAttribute_1" name="keepgenerated" value="true"/> 
    <jspAttributes xmi:id="JSPAttribute_1333518196516" name="reloadEnabled" value="true"/> 
    <jspAttributes xmi:id="JSPAttribute_1333518196517" name="reloadInterval" value="10"/> 
</com.ibm.ejs.models.base.extensions.webappext:WebAppExtension> 

तो विशेषता serveServletsByClassnameEnabled = "true" बिना सर्वलेट-मानचित्रण नाम से पुराने एप्लिकेशन को नक्शे सर्वलेट्स बनाया: पुराने आवेदन मैं पलायन किया गया था निम्नलिखित वेब-INF में आईबीएम-वेब-ext.xmi निहित। यह समर्थित नहीं है यदि एप्लिकेशन सर्वलेट 3.0 है ..

3

आपके उत्तर को देखते हुए आप जो चाहते हैं उसे करने का एक तरीका है। Servlet 3.0 के लिए, ibm-web-ext.xmi फ़ाइल को ibm-web-ext.xml द्वारा प्रतिस्थापित किया गया है और आपके द्वारा उल्लिखित सेटिंग्स को लागू किया जा सकता है।

<?xml version="1.0" encoding="UTF-8"?><web-ext 
xmlns="http://websphere.ibm.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" 
version="1.0"> 

<reload-interval value="3"/> 
<enable-directory-browsing value="false"/> 
<enable-file-serving value="true"/> 
<enable-reloading value="true"/> 
<enable-serving-servlets-by-class-name value="true" /></web-ext> 

आगे पढ़ने के लिए EJB 3.0 application bindings overview पर एक नज़र डालें: यहाँ ibm-web-ext.xml फ़ाइल के लिए एक नमूना कोड है।

संबंधित मुद्दे