java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet


87

मैं उपयोग कर रहा हूँ वसंत 3.1.0.RELEASE , और मेरे सर्वलेट कंटेनर है 7 बिल्ला और मेरे आईडीई है ग्रहण इंडिगो और जार वसंत-webmvc-3.1.0.RELEASE.jar जिसमें DispatcherServlet lib फ़ोल्डर में मौजूद है, और अभी तक जब एप्लिकेशन चलाना, मुझे अपवाद मिल रहा है:

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

कृपया सलाह दें कि मुझे यह अपवाद क्यों मिल रहा है, और इसे कैसे ठीक किया जाए।

संपादित करें: निम्नलिखित मेरी विन्यास फाइल हैं:

1- सूदखोरी:

<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
    <version>1</version>
    <pluginVersion><![CDATA[2.9.0.201203011806-RELEASE]]></pluginVersion>
    <configSuffixes>
        <configSuffix><![CDATA[xml]]></configSuffix>
    </configSuffixes>
    <enableImports><![CDATA[false]]></enableImports>
    <configs>
        <config>src/main/webapp/WEB-INF/checkout-servlet.xml</config>
    </configs>
    <configSets>
    </configSets>
</beansProjectDescription>

2- web.xml:

<web-app>
  <display-name>Checkout</display-name>

  <servlet>
    <servlet-name>checkout</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>checkout</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>

</web-app>

3- चेकआउट-सर्वलेट.एक्सएमएल:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

    <context:component-scan base-package="com.myapp"/>

    <bean id="myService" class="com.myapp.MyService"/>

</beans>

यह भी कि आवेदन में किसी भी पृष्ठ का उपयोग करने का प्रयास करते समय, मुझे अपवाद मिलता है:

HTTP Status 404 - Servlet checkout is not available

type Status report

message Servlet checkout is not available

description The requested resource (Servlet checkout is not available) is not available.
Apache Tomcat/7.0.22

क्या आप अपनी स्प्रिंग कॉन्फिग फाइलों को पोस्ट कर सकते हैं और हमें बता सकते हैं कि यह किस ऐप-सर्वर पर चलना है?
ग्रिगली स्ज़लागि

@ पूरी तरह से, मैं सवाल अद्यतन।
महमूद सालेह

मेरे उत्तर को नष्ट कर दिया, क्योंकि यह उपयोगी नहीं था। क्षमा करें :(
Gergely Szilagyi

@ इयान, मैं ग्रहण का उपयोग कर रहा हूँ
महमूद सालेह

1
मेरा मानना ​​है कि यह सीधे डिस्पैचर सेलेट पर CNF नहीं है, लेकिन एक आश्रित वर्ग ने एक त्रुटि डाली है। जांचें कि क्या आपको कोई अन्य नेस्टेड अपवाद दिखाई देता है।
आराधना

जवाबों:


248

आपको परिनियोजन असेंबली में "मावेन डिपेंडेंसी" को जोड़ना होगा

  • अपनी परियोजना पर राइट क्लिक करें और गुण चुनें।
  • परिनियोजन असेंबली पर क्लिक करें।
  • add पर क्लिक करें
  • "जावा बिल्ड पाथ एंट्रीज़" पर क्लिक करें
  • मावेन डिपेंडेंसी का चयन करें "
  • समाप्त पर क्लिक करें।

फिर से बनाना और तैनात करना

नोट: यह गैर मावेन परियोजना के लिए भी लागू है ।


अच्छा - मैं अपने pom.xml में उचित निर्भरता को जोड़ने के बाद भी देखने के लिए उलझन में था जब तक कि मैंने ऊपर के रूप में अनुसरण नहीं किया ..
श्रीनिवास

अच्छा .. सही समाधान
प्रसाद VS

1
यह काम क्यों करता है? मेरा मतलब है, सभी मावेन निर्भरता उपलब्ध नहीं होनी चाहिए? अगर मैं Tomcat7 को tomcat7 के साथ प्लगिंग का उपयोग कर रहा था: रन, यह कैसे पूरा होगा?
जॉनी बिगोडे

आकर्षण जैसा काम करता है!
यरज़लिक १२'१

यह गैर मावेन परियोजना के लिए भी लागू है। !! मैंने मावेन प्रोजेक्ट बनाया और मुझे वही समस्या हुई। इस समाधान ने मेरे लिए काम किया।
बांधम मणिकांता

33

दो संभावित उत्तर:

1- आपने अपने परिवाद में वसंत-सेम और वसंत-संदर्भ जार शामिल नहीं किया। यदि आप मावेन का उपयोग कर रहे हैं (जो बहुत मदद करेगा) वे दो लाइनें पर्याप्त होंगी

<dependency>
 <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
   <version>3.1.0.RELEASE</version>
</dependency>
<dependency>
 <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
   <version>3.1.0.RELEASE</version>
</dependency>

2- आवश्यक जार आपके क्लासपाथ में हैं, लेकिन टॉमकैट पर तैनात नहीं हैं।


अच्छा लगा कि आपने समस्या हल कर दी, लेकिन मुझे नहीं लगता कि आपकी समस्या से यह समझा जा सकता है कि आप मावेन का उपयोग कर रहे हैं।
सेर्कन अर्ककुसु

1
प्रश्न में मावेन को टैग किया गया है!
महमूद सालेह

3
spring-webmvcमेरे साथ जोड़ने से pom.xmlसमस्या हल हो जाएगी। धन्यवाद।
OO7

19

हाय दोस्तों मुझे आइडिया इंटेलीज और स्प्रिंग 4 के साथ एक ही समस्या थी मैंने समस्या को ठीक कर दिया और मैं आपके साथ जवाब साझा करना चाहता था।

मैं tomcat 7 / idea intellij 13 / spring 4 का उपयोग करता हूं

pom.xml निर्भरताएँ

  <properties>
    <spring.version>4.0.5.RELEASE</spring.version>
  </properties>

  <dependencies>     
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
enter code here
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.2</version>
    </dependency>
        <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.4</version>
    </dependency>
  </dependencies>

Intellij विचार में आपको फ़ाइल -> प्रोजेक्ट सेटिंग्स -> कलाकृतियों में जाने की आवश्यकता है। फिर यहाँ छवि विवरण दर्ज करें

साफ -> परियोजना का पुनर्निर्माण -> कलाकृति का निर्माण और सब कुछ ठीक हो जाएगा ...


आप जीनियस हैं। क्या आप बता सकते हैं कि इससे क्या फर्क पड़ता है? कैसे मावेन सब कुछ आयात करता है, लेकिन आपको अभी भी ऐसा करने की आवश्यकता है ताकि यह काम करे?
२२

@ ममता ने कहा कि सब कुछ निर्यात करता है?
एडेलिन

12

यह मेरे लिए समस्या हल करता है। यह आसान और सुंदर है बस समझाया गया है।

चरण 1

  • प्रोजेक्ट पर राइट क्लिक करें
  • प्रॉपर्टीज पर क्लिक करें

चरण 2

  • में परिनियोजन असेंबली टैब पर क्लिक करें
  • जोड़ें पर क्लिक करें ...

चरण 3

  • Java Build Path Entries पर क्लिक करें

चरण 4

  • मावेन डिपेंडेंसी पर क्लिक करें
  • समाप्त बटन पर क्लिक करें

चरण 5

  • Tomcat को फिर से Redeploy स्प्रिंग MVC आवेदन
  • टॉमकैट को फिर से शुरू करें
  • सामग्री सूचीबद्ध करें

कक्षा में कोई भी अपवाद नही है


क्या आप मेरे प्रस्ताव को दिए गए ग्रेड पर पुनर्विचार करेंगे?
लाइकोन

10

मैंने पाया कि तैनाती विधानसभा में , वहाँ प्रविष्टि थी:

[persisted container] org.maven.ide.eclipse.maven2_classpath_container

मैंने इसे हटा दिया, और maven dependenciesप्रविष्टि जोड़ दी , और यह अब ठीक काम करता है।


5

यदि ये सभी सलाह काम नहीं करती हैं, तो आपको अपने सर्वर (टॉमकैट या उस तरह) को फिर से बनाना चाहिए। इससे मेरी समस्या हल हो गई।


5

अपने pom.xml में निर्भरता के नीचे शामिल करें

<dependency>
 <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
   <version>{spring-version}</version>
</dependency>

4

मैं उसी मुद्दे का सामना कर रहा था। जब मैंने अपने स्थानीय में maven repository .m2 फ़ोल्डर (.... m2 \ repository \ org \ springframework \ spring-webmvc) देखा तो मुझे दो 3.2.0 मिले। फ़ोल्डर देखें। इसलिए मैंने एक को हटा दिया। फिर मैं प्रोजेक्ट पर गया, राइट क्लिक-> प्रॉपर्टीज-> परिनियोजन एस्सेम्फ़र-> मावेन निर्भरता जोड़ें। साफ निर्माण और फिर सर्वर को पुनरारंभ करें। फिर डिस्पैचरसर्वलेट लोड हो गया।


हां, इससे मेरा मुद्दा भी हल हो गया, किसी भी विचार को ग्रहण में तैनाती विधानसभा में निर्भरता जोड़ने की आवश्यकता क्यों है?
फ्रीलांसर

2

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


2

आप GlassFish सर्वर का उपयोग कर सकते हैं और त्रुटि हल हो जाएगी। मैंने tomcat7 और tomcat8 के साथ प्रयास किया लेकिन यह त्रुटि लगातार आ रही थी लेकिन GlassFish के साथ हल हो गई। मुझे लगता है कि यह सर्वर के साथ एक समस्या है।

ये tomcat7 के परिणाम हैं: Tomcat7 के साथ परिणाम

यहाँ GlassFish के साथ परिणाम हैं: GlassFish के साथ परिणाम


1

अपनी परियोजना पर राइट क्लिक करें और गुण चुनें। Deployement विधानसभा पर क्लिक करें। क्लिक करें "जावा बिल्ड पाथ एंट्रीज़ पर क्लिक करें" मावेन डिपेंडेंसीज़ चुनें "समाप्त पर क्लिक करें।


1

यह किसी के लिए उपयोगी हो सकता है, इसलिए मैं इसे यहाँ पोस्ट करूँगा। मुझे इस पर निर्भरता याद आ रही थीpom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

1
  1. प्रोजेक्ट की संपत्तियों पर जाएं जो आपका काम कर रही हैं
  2. चुनें तैनाती विधानसभा मेनू और पर क्लिक करें बटन जोड़ें
  3. ऑप्ट जावा पथ बिल्ड प्रविष्टियां और पर क्लिक करें Maven निर्भरता
  4. प्रोजेक्ट बनाएं और चलाएं

यहाँ छवि विवरण दर्ज करें


1
जावा बिल्ड पाथ एंट्रीज पर क्लिक करने पर मेरे पास मेवेन डिपेंडेंसीज विकल्प नहीं है।
मुक्तदा खान

मुझे नहीं पता था कि यह सवाल किस पहलू में है। कृपया नया प्रश्न पोस्ट करने का प्रयास करें।
लोवा चित्तमुरी

0

मैंने इन चरणों का पालन करके हल किया:

  • प्रोजेक्ट में राइट क्लिक करें> कॉन्फ़िगर करें> मावेन प्रोजेक्ट में कनवर्ट करें
  • रूपांतरण के बाद, प्रोजेक्ट> मेवेन> अपडेट प्रोजेक्ट में राइट क्लिक करें

यह प्रोजेक्ट की "परिनियोजन असेंबली" सेटिंग्स को ठीक करता है।


0

अपने वर्गपथ से वेब-इंफ़ेक्ट / लीब तक जार फ़ाइलों को स्थानांतरित करें , और एक नया टोमैट सर्वर चलाएं।


0

मुझे एक सरल समाधान मिला, बस WEB-INF के अंदर अपने जार जोड़ें -> काम फ़ोल्डर।


0

मैं WebSphere में यह एक ही मुद्दा था, लेकिन मैं वसंत निर्भरता वहाँ थे सत्यापित करने के बावजूद एक समाधान नहीं मिल सकता है और यह ठीक टॉमक्रैट में भाग गया। मैंने एप्लिकेशन को अनइंस्टॉल करना समाप्त कर दिया और अभी भी त्रुटि हो रही थी इसलिए मुझे लगता है कि वेबस्फेयर कुछ भ्रष्ट उदाहरणों पर लटका हुआ था।

समस्या को ठीक करने के लिए मुझे एप्लिकेशन को फिर से इंस्टॉल करना था, इसे रोकना होगा, इसे अनइंस्टॉल करना होगा और फिर इसे फिर से इंस्टॉल करना होगा।


0

मेरे लिए यह एक गलती थी pom.xml- मैं <scope>provided<scope>अपनी निर्भरता पर सेट करूँगा , और यह उन्हें नकल करने के लिए तैयार नहीं कर रहा थाmvn package मंच के था।

मेरे लक्षण ओपी पोस्ट किए गए त्रुटि संदेश थे, और पैकेज चलने के बाद .war के अंदर WEB-INF / lib पथ में जार शामिल नहीं थे। जब मैंने गुंजाइश हटा दी, तो आउटपुट में जार दिखाई दिए, और सभी अब ठीक हो गए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.