[SPRING] java.lang.ClassNotFoundException : org.springframework.web.servlet.DispatcherServlet
SPRINGjava.lang.ClassNotFoundException : org.springframework.web.servlet.DispatcherServlet
나는 Spring 3.1.0.RELEASE를 사용하고 있으며 서블릿 컨테이너는 tomcat 7이고 IDE는 일식 인디고이다. DispatcherServlet을 포함하는 jar spring-webmvc-3.1.0.RELEASE.jar 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-springBeans :
<?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-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- checkout-servlet.xml :
<?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
해결법
-
==============================
1.배포 어셈블리에 "Maven Dependency"를 추가해야합니다.
배포 어셈블리에 "Maven Dependency"를 추가해야합니다.
다시 빌드하고 다시 배포하십시오.
참고 : 이것은 nonmaven 프로젝트에도 적용됩니다.
-
==============================
2.가능한 두 가지 답변 :
가능한 두 가지 답변 :
1- 당신은 당신의 lib에 봄 - 콩과 봄 - 문맥 병을 포함하지 않았다. Maven (많은 도움이 될 것입니다)을 사용하고 있다면이 두 줄이면 충분합니다.
<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- 필요한 항아리는 classpath에 있지만 tomcat에는 배포되지 않습니다.
-
==============================
3.안녕하세요 여러분, Idea Intellij와 Spring 4에서 동일한 문제가 발생했습니다. 문제를 해결하고 답변을 공유하고 싶습니다.
안녕하세요 여러분, Idea Intellij와 Spring 4에서 동일한 문제가 발생했습니다. 문제를 해결하고 답변을 공유하고 싶습니다.
나는 바람둥이 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에서 파일 -> 프로젝트 설정 -> 가공물로 이동해야합니다. 그때
깨끗한 - "프로젝트를 다시 빌드 -"이 유물을 빌드하고 다 괜찮을 것입니다 ...
-
==============================
4.배포 어셈블리에서 항목이 있음을 발견했습니다.
배포 어셈블리에서 항목이 있음을 발견했습니다.
[persisted container] org.maven.ide.eclipse.maven2_classpath_container
내가 그것을 제거하고, maven 종속 항목을 추가하고 지금은 잘 작동합니다.
-
==============================
5.나는 같은 문제에 직면했다. 내 로컬에서 maven 저장소 .m2 폴더 (.... m2 \ repository \ org \ springframework \ spring-webmvc)를 보았을 때 두 개의 3.2.0.RELEASE 폴더를 발견했습니다. 그래서 나는 하나를 제거했다. 그런 다음 마우스 오른쪽 버튼 -> 등록 정보 -> 배포 구성 -> 종속성 추가 프로젝트에갔습니다. 클린 빌드하고 서버를 다시 시작하십시오. 그런 다음 DispatcherServlet이로드되었습니다.
나는 같은 문제에 직면했다. 내 로컬에서 maven 저장소 .m2 폴더 (.... m2 \ repository \ org \ springframework \ spring-webmvc)를 보았을 때 두 개의 3.2.0.RELEASE 폴더를 발견했습니다. 그래서 나는 하나를 제거했다. 그런 다음 마우스 오른쪽 버튼 -> 등록 정보 -> 배포 구성 -> 종속성 추가 프로젝트에갔습니다. 클린 빌드하고 서버를 다시 시작하십시오. 그런 다음 DispatcherServlet이로드되었습니다.
-
==============================
6.이러한 모든 조언이 작동하지 않으면 서버 (Tomcat 또는 그와 유사한)를 다시 만들어야합니다. 그게 내 문제를 해결해 줬어.
이러한 모든 조언이 작동하지 않으면 서버 (Tomcat 또는 그와 유사한)를 다시 만들어야합니다. 그게 내 문제를 해결해 줬어.
-
==============================
7.pom.xml에 아래의 의존성을 포함하십시오.
pom.xml에 아래의 의존성을 포함하십시오.
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>{spring-version}</version> </dependency>
-
==============================
8.이것은 나를 위해 문제를 해결합니다. 간단하고 간단하게 설명합니다.
이것은 나를 위해 문제를 해결합니다. 간단하고 간단하게 설명합니다.
1 단계
2 단계
3 단계
4 단계
5 단계
학급 포기 유예
-
==============================
9.제 경우에는 maven의 업데이트 프로젝트 유틸리티를 사용한 후에이 문제가 발생합니다. 내가 제안한 모든 해결 방법을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 결국 솔루션은 서버에서 프로젝트를 제거하여 프로젝트가 깨끗한 지 확인한 다음 다시 추가하는 것입니다. 그런 다음이 솔루션이 도움이되기를 바랍니다.
제 경우에는 maven의 업데이트 프로젝트 유틸리티를 사용한 후에이 문제가 발생합니다. 내가 제안한 모든 해결 방법을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 결국 솔루션은 서버에서 프로젝트를 제거하여 프로젝트가 깨끗한 지 확인한 다음 다시 추가하는 것입니다. 그런 다음이 솔루션이 도움이되기를 바랍니다.
-
==============================
10.GlassFish 서버를 사용할 수 있으며 오류가 해결됩니다. 나는 tomcat7과 tomcat8을 사용해 보았지만,이 오류는 지속적으로 발생했지만 GlassFish로 해결되었습니다. 나는 그것이 서버에 문제라고 생각한다.
GlassFish 서버를 사용할 수 있으며 오류가 해결됩니다. 나는 tomcat7과 tomcat8을 사용해 보았지만,이 오류는 지속적으로 발생했지만 GlassFish로 해결되었습니다. 나는 그것이 서버에 문제라고 생각한다.
tomcat7의 결과는 다음과 같습니다.
GlassFish의 결과는 다음과 같습니다.
-
==============================
11.프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. 전개 어셈블리를 클릭하십시오. 추가 클릭 "Java Build Path Entries"를 클릭하십시오. Maven 종속성 선택 " 마침을 클릭하십시오.
프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. 전개 어셈블리를 클릭하십시오. 추가 클릭 "Java Build Path Entries"를 클릭하십시오. Maven 종속성 선택 " 마침을 클릭하십시오.
-
==============================
12.나는 다음 단계에 따라 해결했다.
나는 다음 단계에 따라 해결했다.
이렇게하면 프로젝트의 "Deployment Assembly"설정이 수정됩니다.
-
==============================
13.jar 파일을 클래스 경로에서 web-inf / lib로 이동하고 새 tomcat 서버를 실행하십시오.
jar 파일을 클래스 경로에서 web-inf / lib로 이동하고 새 tomcat 서버를 실행하십시오.
-
==============================
14.나는 간단한 해결책을 발견했다. 단순히 WEB-INF -> lib 폴더 안에 항아리를 추가하십시오 ..
나는 간단한 해결책을 발견했다. 단순히 WEB-INF -> lib 폴더 안에 항아리를 추가하십시오 ..
-
==============================
15.WebSphere에서이 동일한 문제가 있었지만 Spring 종속성이 존재 함을 확인했지만 Tomcat에서 올바르게 실행되었지만 해결책을 찾을 수 없었습니다. 응용 프로그램을 제거하고 오류가 발생하여 WebSphere가 손상된 인스턴스에 매달려 있다고 생각합니다.
WebSphere에서이 동일한 문제가 있었지만 Spring 종속성이 존재 함을 확인했지만 Tomcat에서 올바르게 실행되었지만 해결책을 찾을 수 없었습니다. 응용 프로그램을 제거하고 오류가 발생하여 WebSphere가 손상된 인스턴스에 매달려 있다고 생각합니다.
응용 프로그램을 다시 설치해야하는 문제를 해결하려면 응용 프로그램을 중지하고 제거한 다음 다시 설치하십시오.
-
==============================
16.나에게 그것은 pom.xml에서 실수였다. 필자는
가 내 의존성에 을 제공하도록 설정했는데 이것은 mvn 패키지 단계에서 복사되지 않게 만들었다. 나에게 그것은 pom.xml에서 실수였다. 필자는
가 내 의존성에 을 제공하도록 설정했는데 이것은 mvn 패키지 단계에서 복사되지 않게 만들었다. 내 증상은 OP가 게시 한 오류 메시지 였고 패키지가 실행 된 후 .war 내부의 WEB-INF / lib 경로에는 병이 포함되어 있지 않았습니다. 범위를 제거하면 출력에 jar가 나타나고 이제는 모든로드가 정상적으로 처리됩니다.
from https://stackoverflow.com/questions/11227395/java-lang-classnotfoundexception-org-springframework-web-servlet-dispatcherserv by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @Controller 클래스의 Spring @Value 주석은 속성 파일 내부의 값을 평가하지 않습니다. (0) | 2018.12.06 |
---|---|
[SPRING] 스프링 데이터 JPA에서 FetchMode는 어떻게 작동합니까? (0) | 2018.12.06 |
[SPRING] Spring Boot에게 어떤 메인 클래스를 실행 가능한 jar 파일로 사용할 지 알려주려면 어떻게해야합니까? (0) | 2018.12.06 |
[SPRING] Spring Java Config : 런타임 인수를 사용하여 프로토 타입 범위의 @Bean을 만드는 방법은 무엇입니까? (0) | 2018.12.06 |
[SPRING] Spring에서 Session 객체를 얻으려면 어떻게해야합니까? (0) | 2018.12.06 |