2011-02-24 12 views
8

मैंने एक्लिप्स (हेलीओस) + ग्लासफ़िश v3 में एक सरल "हैलो वर्ल्ड" सर्वलेट बनाया। मैं ग्रहण के लिए ग्लासफ़िश की प्लगइन का उपयोग कर रहा हूं ऐसा लगता है कि वेब-एक्सएमएल नहीं है लेकिन वेब-आईएनएफ/फ़ोल्डर में एक सन-वेब.एक्सएमएल है। यह glassfish के साथ मेरी पहली बार है लेकिन थोड़ा web.xml के अभाव पर हैरान था - तो यहाँ समस्याओं में से कुछ हैं:ग्रहण + ग्लासफ़िश v3 में कोई web.xml नहीं है?

  1. मैं कहां से सर्वलेट के लिए यूआरएल-मैपिंग के लिए जाँच करते हैं? ग्रहण में एक नया सर्वलेट बनाने पर यह मुझे एक यूआरएल-मैपिंग के लिए पूछता है लेकिन मैं इसे किसी भी .xml फ़ाइल में कहीं भी नहीं ढूंढ पा रहा हूं जहां मैं सेटिंग्स को ट्विक कर सकता हूं।
  2. यदि कोई वेब.एक्सएमएल नहीं है, तो इसे स्क्रैच से बनाकर काफी त्रुटि होगी। आपकी क्या सलाह है? नमूना के लिए Google और चारों ओर खेलते हैं? क्या कोई ऑटो-निर्मित नहीं होना चाहिए?
  3. क्या किसी को इसका सामना करना पड़ा है? मैंने web.xml और sun-web.xml के बीच अंतर को देखने की कोशिश की लेकिन परिणाम सभी प्रबुद्ध नहीं थे। मैं कॉन्फ़िगरेशन उद्देश्यों के लिए एक और एक्सएमएल नहीं सीखना चाहता हूं और वह भी ग्लासफ़िश विशिष्ट है।

हम सर्वलेट संदर्भों कॉन्फ़िगर करने के लिए, मैपिंग आदि विशेष रूप से विकास/परीक्षण लेकिन web.xml की सरासर अभाव मुझे स्टम्प्ड है के दौरान की है।

उत्तर

12

ग्रहण आपको जावा ईई 6 के लिए डायनामिक वेब प्रोजेक्ट बनाने के लिए वेब.एक्सएमएल फ़ाइल बनाने की अनुमति नहीं देता है, क्योंकि जावा ईई 6 स्पेक (सामान्य रूप से) और सर्वलेट 3.0 spec (विशेष रूप से) परिनियोजन पर जोर देने का प्रयास वर्णनकर्ता।

आप सभी डेटा है कि web.xml फ़ाइल में शामिल किया गया है प्रदान करने के लिए एनोटेशन का उपयोग कर सकते हैं। Javadoc for the Servlet 3.0 annotations बहुत उलझन में है। थोड़ा अधिक व्याख्यात्मक पाठ प्राप्त करने के लिए आपको Servlet 3.0 spec from the jcp.org site के माध्यम से पढ़ना चाहिए।

एक सर्वलेट 3.0 सर्वलेट के लिए यूआरएल-मानचित्रण बदलने के लिए, पहली जगह देखने के लिए सर्वलेट के लिए स्रोत कोड में है। UrlPatterns तत्व के मान को देखें (और बदलें)।

आप सर्वलेट 3.0 के आधार पर एक वेब अनुप्रयोग बनाने का प्रयास कर रहे हैं, तो एक web.xml फ़ाइल बनाने से बचने की कोशिश।

धूप में web.xml/glassfish-web.xml फ़ाइल 'खत्म' एक ग्लासफिश कंटेनर में तैनाती के लिए एक युद्ध फ़ाइल का वर्णन करने के लिए प्रयोग किया जाता है। WebServlet तरह टिप्पणियों के बारे में

एक अन्य टिप्पणी ...वे वर्ग पदानुक्रम में अपने एनोटेट वर्ग को एकीकृत नहीं है, इसलिए @WebServlet के सही उपयोग की तरह

@WebServlet(
    name = "MyServlet", 
    urlPatterns = {"/path_to_servlet"} 
) 
public class MyServlet extends HttpServlet {} 
+0

वही है जो मैं ढूंढ रहा था! मुझे इसे बिट्स और टुकड़ों में मिला लेकिन एक समेकित स्पष्टीकरण अधिक स्वागत है! धन्यवाद! – PhD

+1

आप ग्रहण प्रोजेक्ट पर राइट-क्लिक कर सकते हैं और इसे उत्पन्न करने के लिए "जावा ईई टूल्स" -> "डिप्लॉयमेंट डिस्क्रिप्टर स्टब जेनरेट करें" का चयन कर सकते हैं। – Pargat

+0

सर्वलेट से 3 specification-> 10.13 एक web.xml तैनाती का समावेश डिस्क्रिप्टर: वेब अनुप्रयोग एक web.xml शामिल करने के लिए करता है, तो यह किसी भी सर्वलेट, फ़िल्टर, या श्रोता घटक शामिल नहीं है की आवश्यकता नहीं है या घोषित करने के लिए एनोटेशन का उपयोग कर रहा है वही। अन्य शब्दों में केवल एक स्थिर फाइल या जेएसपी पृष्ठों वाले एप्लिकेशन को एक वेब.एक्सएमएल मौजूद होने की आवश्यकता नहीं है। – Vicky

3

ग्लासफ़िश 3.x के कारण पूरी तरह से जावा ईई 6 सर्वर प्रमाणित है, यह Servlets 3.0 का समर्थन करता है। Servlets 3.0 से शुरू करना, एनोटेशन के माध्यम से web.xml सेटिंग्स निर्दिष्ट करना संभव है।

उदाहरण के लिए

@WebServlet(
    name = "MyServlet", 
    urlPatterns = {"/path_to_servlet"} 
) 
public class MyServlet {} 
+0

मुझे इसके बारे में पता नहीं था ... सूचक के लिए धन्यवाद :) – PhD

4

ऐसा लगता है कि यह एक बुरी आदत है जब आप एक 'नई> गतिशील वेब परियोजना' बनाने के क्लिक करने के लिए "समाप्त" है - आप 'अगले' पर क्लिक रखने के लिए और पिछले विंडो जाना चाहिए फलक जहां आप "web.xml परिनियोजन वर्णनकर्ता उत्पन्न करते हैं" का चयन करते हैं - ऐसा लगता है कि यह डिफ़ॉल्ट रूप से अनचेक किया गया है।

ठीक है कि कहता है कि मैं वेब-ऐप्स बनाने के साथ थोड़ा सा जंग लगा रहा हूं। और यहां मैंने सोचा कि यह एक ग्लासफ़िश विशिष्ट मुद्दा था।

+0

मैं [इस स्क्रीनशॉट] के लिंक के साथ एक उत्तर पोस्ट करने जा रहा था (http://4.bp.blogspot.com/_4aRLuh8AW_A/ TUYJKApT42I/AAAAAAAAAhw/iibmuOHBw7Y/s1600/तैयार-जेएसएफ-प्रोजेक्ट-% 252303.png) :) अच्छा आप इसे स्वयं पाते हैं। – BalusC

+0

@ बालससी: मुझे पता था कि मैं आप पर भरोसा कर सकता हूं: डी – PhD

10

आप आप एक web.xml फ़ाइल की आवश्यकता है लगता है, तो आप में तैनाती वर्णनकर्ता पर संदर्भ क्लिक कर सकते हैं विचार करेंगे प्रोजेक्ट एक्सप्लोरर व्यू और वहां एक विकल्प होना चाहिए "डिप्लॉयमेंट डिस्क्रिप्टर स्टब जेनरेट करें"। इससे आपके लिए और welcome-file-list तत्वों के साथ web.xml तैयार होगा।

0

टीएमएन ने जो कहा, उसे जोड़ने के लिए, मैंने देखा कि प्रोजेक्ट एक्सप्लोरर डिप्लॉयमेंट डिस्क्रिप्टर नहीं दिखाएगा जब तक कि मैंने किसी कारण से एसवीएन अपडेट नहीं किया। यदि आपको वह समस्या है, तो अपना कोड अपडेट करने का प्रयास करें। मैं पहले से ही HEAD संशोधन पर था लेकिन किसी कारण से अपडेट ने उस दृश्य को दिखाया।

+1

यह एक टिप्पणी होनी चाहिए, @ क्लेटे 2। – karlphillip

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