2012-01-24 13 views
11

मैं Struts2 के लिए पूर्ण शुरुआतकर्ता हूं। मैं स्ट्रैट्स वेब साइट पर ट्यूटोरियल्स का पालन करने के लिए तैयार हूं। मैंने this tutorial का पालन किया। मुझे इसके साथ कुछ परेशानी है। मैंने ग्रहण पर गतिशील वेब प्रोजेक्ट बनाया है। फिर मैंने ट्यूटोरियल का पालन किया। हालांकि जब मैं उदाहरण चलाता हूं तो मुझे निम्न त्रुटि मिलती है।स्ट्रेट्स हैलो वर्ल्ड उदाहरण: नेमस्पेस के लिए मैप किए गए कोई एक्शन नहीं है [/] और एक्शन नेम एरर

There is no Action mapped for namespace [/] and action name [hello] associated with context path [/Hello_World_Struts_2]. - [unknown location] 

मैं निम्नलिखित निर्देशिका संरचना है

enter image description here

और मेरे struts.xml फ़ाइल आपकी प्रतिक्रियाओं के लिए

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 

    <constant name="struts.devMode" value="true" /> 

    <package name="basicstruts2" extends="struts-default" namespace="/"> 

    <action name="index"> 
    <result>/index.jsp</result> 
    </action> 

    <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute"> 
    <result name="SUCCESS">/HelloWorld.jsp</result> 
    </action> 

</package> 

</struts> 

धन्यवाद है।

+0

मैं कोड ब्लॉक के अंदर यह डालने की कोशिश की, लेकिन मैं यह नहीं कर सके। अब, ठीक है, मुझे लगता है। – erencan

उत्तर

17

struts.xml कॉन्फ़िगरेशन फ़ाइल को क्लासपाथ पर होना चाहिए (जैसा कि WEB-INF में विरोध किया गया है)।

लिंक किए गए ट्यूटोरियल में मैवेन बिल्ड होता है और struts.xml फ़ाइल src/main/resources में जाना चाहिए, जिसे मेवेन बिल्ड में क्लासपाथ में शामिल किया जाएगा। चूंकि आप उस हिस्से को अनदेखा कर रहे हैं, इसलिए आप इसे अपनी स्रोत निर्देशिका की जड़ में रखना चाहेंगे।

+1

बहुत बहुत धन्यवाद। इसने समस्या हल की। हालांकि, मुझे एक और त्रुटि मिलती है "कोई परिणाम कार्रवाई और परिणाम सफलता के लिए परिभाषित नहीं किया गया" कोई विचार? – erencan

+1

@erencan Yep; आपके परिणाम का नाम "सफलता" है, लेकिन 'Action.SUCCESS' स्ट्रिंग '" सफलता "' (लोअरकेस) है। यह एक अनुमान है, क्योंकि मुझे नहीं पता कि आपकी कार्रवाई कैसी दिखती है। साथ ही, "निष्पादित करें" 'डिफ़ॉल्ट विधि है और निर्दिष्ट करने की आवश्यकता नहीं है। (और "सफलता" डिफ़ॉल्ट परिणाम नाम है यदि आप इसे स्पष्ट रूप से परिभाषित नहीं करना चाहते हैं।) –

+0

आप सही हैं। ट्यूटोरियल अच्छी तरह से काम किया। बहुत बहुत धन्यवाद। – erencan

2

आपको फ़ोल्डर WEB-INF/ के तहत बनाना है और अपनी struts.xml फ़ाइल में डालना है!

2

प्रोजेक्ट पर राइट क्लिक करें। गुणों परिनियोजन निर्माण पथ पर जाएं और सभी .jar फ़ाइलों को/WEB-INF/lib में जोड़ें।
फिर आपको यह त्रुटि नहीं मिलनी चाहिए।

struts.xml निर्देशिका के अंतर्गत स्थित होना चाहिए: src/struts.xml ..

और वेब-INF/web.xml आप हम फिल्टर के आधार पर struts विन्यस्त करने की जरूरत ..

1

मुझे मिल गया वही त्रुटि और समाधान को देख बिल्ला लोग इन जब पुन: प्रारंभ हो गया है: doctype struts.xml

में लापता थे तो मैं

<xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 

अब यह काम करता है जोड़ा गया!

1

मैं पैकेज टैग के बाद उदाहरण के लिए, डिफ़ॉल्ट-एक्शन रेफरी टैग जोड़कर समस्या हल हो जाती,

<default-action-ref name="home" /> 

struts.xml में

<package name="user" namespace="/" extends="struts-default"> 

<default-action-ref name="upload" /> 
0

मैं एक ही मुद्दा था और struts.xml में नेमस्पेस का सही उल्लेख नहीं करने के कारण मैं इसका सामना कर रहा था।

मैं web.xml में निम्नलिखित स्निपेट कहा:

<welcome-file>login.jsp</welcome-file> 

और भी रूप में "/" डिफ़ॉल्ट ... आशा है कि यह आपकी क्वेरी के उत्तर देता नाम स्थान बनाने ..

-1

मेरे मामले में मैं Struts.xml ---> का नाम बदलने के लिए किया था struts.xml