2012-07-02 22 views
8

के साथ ग्रहण पर मैं अपने स्थानीय टॉमकैट पर एक्लिप्स के साथ एक सर्वलेट चलाने की कोशिश कर रहा हूं।HTTP स्थिति 404 - टॉमकैट

लेकिन मुझे यह त्रुटि मिल रही है और मुझे कोई विचार नहीं है कि अलग-अलग क्या करना है।

मैं वास्तव में यह यहाँ दर्ज: http://www.screenr.com/ZyD8

बहुत धन्यवाद!

 <?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" 
    version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > 

    <display-name> 
TEST3 
    </display-name> 

    <welcome-file-list> 

     <welcome-file> 
TEST3 
     </welcome-file> 
    </welcome-file-list> 

    <servlet> 

     <servlet-name> 
helloServlet 
     </servlet-name> 

     <servlet-class> 
HelloServlet 
     </servlet-class> 
    </servlet> 

    <servlet-mapping> 

     <servlet-name> 
helloServlet 
     </servlet-name> 

     <url-pattern> 
/hello 
     </url-pattern> 
    </servlet-mapping> 

</web-app> 
+0

क्या सर्वलेट में संकुल होते हैं, यदि हां, तो वेब.एक्सएमएल –

+0

में पूरी तरह से योग्य वर्ग का नाम लिखें, यह "डिफ़ॉल्ट पैकेज" में है। लेकिन अगर मैं इसे "test.servlet" पैकेज में डालता हूं और वेब.एक्सएमएल में क्लास नाम के रूप में "test.servlet.HelloServlet" डालता हूं तो यह वही त्रुटि देता है – user387184

+0

मेरा उत्तर जांचें। –

उत्तर

20

मैं अपने लिंक देखा है:

इसके अलावा, मैं यह करने के लिए web.xml बदल दिया है।

जब भी आप कोई गतिशील वेब प्रोजेक्ट चलाते हैं। डिफ़ॉल्ट रूप से Servlet कंटेनर (जो इस मामले में टोमकैट है) स्वागत सूची में निर्दिष्ट फ़ाइलों की खोज करता है। चेक अपने web.xml, यह होना चाहिए की तरह

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

आप ऊपर दी गई सूची में से किसी से फ़ाइल नहीं बनाया है प्रवेश होता है। तो,

http://localhost:8080/TEST2 आपको 404 त्रुटि देगा।

इसके बजाय भाग लें: http://localhost:8080/TEST2/HelloSerlvet आपके द्वारा बनाए गए सर्वलेट को आमंत्रित करेगा।

संपादित करें: ग्रहण के प्रोजेक्ट मेनू की जांच करें और "स्वचालित रूप से बनाएं" सत्यापित करें और सर्वलेट कंटेनर चल रहा है (http://localhost:8080)।

संपादित करें 2: राइट क्लिक प्रोजेक्ट -> गुण, जावा बिल्ड पथ का चयन करें -> स्रोत टैब -> डिफ़ॉल्ट आउटपुट फ़ोल्डर बदलें। /WEB-INF/classes /WebContent तहत बनाएँ (ग्रहण में डिफ़ॉल्ट)

+0

कृपया मेरे संलग्न वेब.एक्सएमएल देखें - जब मैं "http: // localhost: 8080/TEST2/HelloSerlvet" टाइप करता हूं तो यह वही त्रुटि देता है। मुझे लगता है कि वर्ग सही स्थान पर बिल्कुल तैनात नहीं होता है, लेकिन मुझे नहीं पता कि क्या करना है? – user387184

+0

क्षमा करें, लेकिन मैंने सब कुछ करने की कोशिश की और अभी भी काम नहीं किया। "बिल्ड पथ पर स्रोत फ़ोल्डर" के तहत शीर्ष पर बिल्डपैथ के रूप में मुझे क्या करना होगा और मुझे "डिफ़ॉल्ट आउटपुट फ़ॉल्डर" के तहत क्या रखना चाहिए। क्या मुझे "आउटपुट फ़ोल्डर को स्रोत फ़ोल्डर के रूप में अनुमति दें" की जांच करनी चाहिए? – user387184

+0

कृपया ध्यान से पढ़ें। मैंने नया फ़ोल्डर बनाने का उल्लेख किया है। संपादित करें 2 –

7

यह कुछ पर प्रकाश डाला साथ हार्दिक मिश्रा से इस सवाल का जवाब पर आधारित है: 1. फ़ाइल एक्सप्लोरर (नहीं ग्रहण से) से, मैन्युअल रूप से बनाने के "/ वेब-INF/कक्षाएं "अंडर/वेबकंटेंट 2. राइट क्लिक प्रोजेक्ट -> गुण, जावा बिल्ड पथ का चयन करें -> स्रोत टैब -> आपके द्वारा अभी बनाए गए फ़ोल्डर में डिफ़ॉल्ट आउटपुट फ़ोल्डर बदलें। 3. एक्लिप्स से नहीं, फ़ाइल एक्सप्लोरर पर जाएं, क्योंकि ग्रहण "प्रोजेक्ट एक्सप्लोरर" में कुछ फ़िल्टर हो सकते हैं जो कक्षा फ़ोल्डर नहीं दिखाते हैं। आपको इस निर्देशिका के तहत संकलित .class फ़ाइलों को देखना चाहिए

इसे फिर से जांचने का प्रयास करें। यदि यह काम नहीं करता है, तो एक बार के लिए ग्रहण को पुनरारंभ करें और फिर इसे काम करना चाहिए।

4

मैं इस तरह के मुद्दे को काफी समय से देख रहा हूं और कई समाधान देखे हैं जो कुछ के लिए काम करते हैं और बाकी भी एक ही मुद्दे का सामना करते हैं।

सरल समाधान में से एक .java/.jsp/etc के विपरीत है, राइट क्लिक करें और सर्वर विकल्प से रन का चयन करें।

मुझे यह समाधान चलने का सरल लेकिन प्रभावी तरीका माना गया है।

पथ जावा संसाधन-> src -> -> example.java -> राइट क्लिक करें -> सर्वर पर चलाएं -> चलाएं।

इसके बाद भी आप पोर्ट 8005 जैसे कुछ मुद्दों का सामना नहीं कर सकते हैं, कृपया अपनी वर्तमान अपाचे सेटिंग को साफ़ करने और उसे फिर से सेट करने के लिए नीचे दिए गए लिंक का पालन करें।

TOMCAT - HTTP Status 404

Deployment error:Starting of Tomcat failed, the server port 8080 is already in use

आशा है कि यह खोज मददगार था।

0

आम तौर पर, जब आप web.xml फ़ाइल को संशोधित करते हैं, तो आपको टोमकैट को "साफ" करना चाहिए। एक्लिप्स में बस टॉमकैट पर राइट-क्लिक करें और साफ करें। परियोजना के लिए ऐसा ही करें। आप टॉमकैट को भी रोक सकते हैं, ऐप को टॉमकैट से हटाएं (टॉमकैट के नीचे ऐप पर राइट-क्लिक करें और हटाएं) और फिर इसे वापस जोड़ें। टॉमकैट को पुनरारंभ करें।

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