2010-11-22 16 views
6

मेरे web.xml पर मैं एक "springmvc" सर्वलेट घोषणा (जो एक इसी springmvc-servlet.xml है)स्प्रिंग आवेदन प्रसंग लोड आदेश

<servlet> 
    <servlet-name>springmvc</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>springmvc</servlet-name> 
    <url-pattern>/myapp/*</url-pattern> 
</servlet-mapping> 

मैं अपने सामान्य applicationContext.xml फ़ाइल है।

कौन सा पहले लोड हो जाता है? Springmvc-servlet.xml या applicationContext.xml?

कारण मैं यह पूछ रहा हूं जब भी मैं एप्लिकेशन Context.xml में <mvc:annotation-driven/> तत्व डालता हूं, मुझे एक गंभीर संदर्भ त्रुटि मिलती है। लेकिन जब मैं उस तत्व को springmvc-servlet.xml में डालता हूं, तो मेरा वेब ऐप ठीक चलता है।

कोई विचार क्यों?

किसी अन्य वेब-ऐप पर, मेरे पास <mvc:annotation-driven/> एप्लिकेशनContext.xml के अंदर है और यह ठीक चलता है।

परिशिष्ट: मैं देखा कि aop की उपस्थिति है: configMVC के खिलाफ संघर्ष बन गया है: एनोटेशन चालित

+0

कृपया, अपने प्रश्न के लिए अपवाद स्टैक ट्रेस कॉपी करें। क्या आपने applicationContext.xml में mvc नेमस्पेस के लिए xsd परिभाषित किया है? – MarrLiss

+0

कोई स्टैक ट्रेस नहीं है। मुझे केवल टोमकैट से सामान्य गंभीर संदर्भ त्रुटि मिलती है। – chris

उत्तर

0

छोड़कर web.xml के लिए वहाँ कोई पूर्वनिर्धारित क्रम है। यह तब होता है:

  • web.xml सर्वलेट इंजन द्वारा लोड किया जाता है, यह सब परिभाषित servlets, फिल्टर, श्रोताओं के भार,
  • ContextLoaderListener जड़ आवेदन संदर्भ एक्सएमएल लोड करता है चलाता है, इस शामिल हो सकता है एक LocalSessionFactoryBean के लिए एक सेम परिभाषा सभी हाइबरनेट मानचित्रण एक्सएमएल का भार फ़ाइलों को ट्रिगर
  • DispatcherServlet वेब आवेदन संदर्भ एक्सएमएल लोड करता है

प्रत्येक मामले में ऑर्डर निर्धारित करने के लिए web.xml का अध्ययन करें।

यह भी देखें:

link

+0

मेरे web.xml में मेरे पास केवल xxxxx-servlet.xml है। मैंने किसी अन्य स्प्रिंग एक्सएमएल फाइलों की घोषणा नहीं की। ApplicationContext.xml बिना किसी विशेष कॉन्फ़िगरेशन के डिफ़ॉल्ट रूप से लोड किया जाता है। मुझे वास्तव में पता नहीं है कि यह उनके स्थान – chris

+0

के आधार पर कुछ ऐप्स पर क्यों काम करता है मैं इस जानकारी को पच रहा हूं और वर्तमान में परीक्षण कर रहा हूं ... मुझे लगता है कि मैं कुछ – chris

+0

में हूं, ठीक है, मुझे खुशी है कि यह जानकारी आपकी मदद कर रही है । – Michel

5

applicationContext.xml संदर्भ dispatcher-servlet.xml संदर्भ के लिए माता-पिता है। ,

<mvc:annotation-driven />dispatcher-servlet.xml में होना चाहिए, क्योंकि यह आवेदन की वेब भाग के अंतर्गत आता है: मैं का मतलब है कि क्या यह यह पहली बार भरी हुई है पता नहीं है, लेकिन यह आपके मामले में कोई फर्क नहीं पड़ता।

+0

अवलोकन के आधार पर, मुझे ऐसा नहीं लगता है। मेरे पास एक वेब-ऐप है जहां applicationContext.xml में है। वास्तव में, अगर मैं xxxxx-servlet में डालता हूं, तो मुझे बस CONTEXT त्रुटि मिलती है। मुझे उस तत्व की आवश्यकता है क्योंकि मेरे नियंत्रकों और नौकरियों को क्रमशः @ कंट्रोलर और @ सेवा का उपयोग करके चिह्नित किया गया है – chris

+0

@chris सेवा अपवाद का सही संदेश और पता साझा करने के बारे में कैसे? – Bozho

0

आप शायद आवेदन संदर्भ के लिए MVC नाम स्थान जोड़ने के लिए:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" 
> 

(अन्य नामस्थान छीन)

+0

मुझे पहले से ही मिल गया है। जब मैं उन स्कीमा – chris

+0

को याद कर रहा हूं तो ग्रहण स्वचालित रूप से शिकायत करेगा, लेकिन मैं बस पूर्णता के लिए जांच कर रहा था। –

3

मैं मेरी समस्या हल!

यह पता चला है कि लोड लोड के साथ इसका कोई लेना-देना नहीं है या <mvc:annotation-driven/> घोषित किया गया है।

मैंने अपने वेब-एप को एक और टोमकैट पर तैनात करने की कोशिश की और मेरे आश्चर्य के लिए स्थानीयहोस्ट लॉग में एक स्टैक ट्रेस है। मुझे परीक्षण और त्रुटि का संकेत था कि संघर्ष <aop:config/> के साथ है। लेकिन क्या विशेष संघर्ष?

तो मैं लॉग फ़ाइल में इस त्रुटि देखा:

java.lang.ClassCastException: org.aspectj.weaver.ResolvedType$Array cannot be cast to org.aspectj.weaver.ReferenceType 

तो हम एक डाली अपवाद है। मैंने उपरोक्त सटीक त्रुटि को गुमराह किया और पाया: Spring 3: adding causes ClassCastException

यह थ्रेड स्टार्टर दिखाई देता है और मेरे पास एक ही सटीक समस्या है। तो मैंने पहलू-1.6.10.jar डाउनलोड किया लेकिन मुझे अभी भी एक कक्षा याद आ रही थी। फिर यह पता चला है कि यह पहलूवेवर-1.6.9

मैं अभी भी एक बहुत पुराने पहलू का उपयोग कर रहा था। इसके नाम पर इसका कोई संस्करण नहीं था। समस्या सुलझ गयी। मामला समाप्त।

एक बोनस के रूप वैसे, मैं मैन्युअल रूप से इसके समकक्ष XML घोषणा को <mvc:annotation-driven/> तत्व unrolled किया है:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
    <property name="order" value="0" /> 
</bean> 

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="webBindingInitializer"> 
     <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> 
      <property name="validator" ref="validator" /> 
     </bean> 
    </property> 
    <property name="messageConverters"> 
     <list> 
      <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> 
      <bean class="org.springframework.http.converter.StringHttpMessageConverter" /> 
      <bean class="org.springframework.http.converter.FormHttpMessageConverter" /> 
      <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" /> 
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> 
     </list> 
    </property> 
</bean> 

<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /> 
<bean id="conversion-service" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" /> 

वे बिल्कुल वही कर रहे हैं जब आप मैं क्या शोध किया है, उसके आधार <mvc:annotation-driven/> घोषित ।

उन सभी के लिए धन्यवाद जिन्होंने मेरी मदद की।

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