2014-09-02 9 views
0

Maven과 Hibernate를 사용하는 Spring MVC 기반 애플리케이션을 개발 중이다. 아파치 서버에서 실행하려고 할 때, 아파치 서버는 제 2 줄에 "스프링 서블릿을 사용할 수 없습니다"라는 오류를 표시합니다.스프링 서블릿을 사용할 수 없음

<?xml version="1.0" encoding="UTF-8"?> 

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 MavenWeb MavenWeb 전쟁 0.0.1- : 여기 내 POM 파일입니다 스냅 받는다는 - 컴파일러 플러그인 3.1 1.7 1.7 , java.net.m2repo java.net 메이븐 2 저장소 http://download.java.net/maven/2/ 기본

<properties> 
    <spring.version>4.0.1.RELEASE</spring.version> 
</properties> 
<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <!-- Spring dependencies --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</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>hibernate</groupId> 
     <artifactId>hibernate</artifactId> 
     <version>3.1rc2</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>3.5.5-Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.4.public_draft</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.integration</groupId> 
     <artifactId>spring-integration-jpa</artifactId> 
     <version>4.0.3.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>4.0.6.RELEASE</version> 
    </dependency> 
</dependencies> 

나뿐만 아니라 콘솔에서 오류를 게시하고있다 :

SEVERE: Error loading WebappClassLoader 
    context: /MavenWeb 
    delegate: false 
    repositories: 
    /WEB-INF/classes/ 
----------> Parent Classloader: 
[email protected] 
org.springframework.web.servlet.DispatcherServlet 
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4738) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

Sep 02, 2014 4:38:24 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /MavenWeb threw load() exception 
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4738) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

Sep 02, 2014 4:38:24 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
Sep 02, 2014 4:38:24 PM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
Sep 02, 2014 4:38:24 PM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/10 config=null 
Sep 02, 2014 4:38:24 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 424 ms 
Sep 02, 2014 4:38:26 PM org.apache.catalina.core.StandardWrapperValve invoke 
INFO: Servlet spring is currently unavailable 
+0

문제가 pom.xml 자체에 있다고 생각하고, 종속 항아리 만 사용하려고합니다. 일부는 꽤 최신 모양으로 보이고 나머지는 아주 오래된 것 같습니다 (스프링 항아리에 대해) –

답변

0

이를 사용해보십시오 POM의 종속성 :

이 기본 봄 4 일
<properties> 
     <java-version>1.6</java-version> 
     <org.springframework-version>4.0.3.RELEASE</org.springframework-version> 
     <org.aspectj-version>1.7.4</org.aspectj-version> 
     <org.slf4j-version>1.7.5</org.slf4j-version> 
     <hibernate.version>4.3.5.Final</hibernate.version> 
    </properties> 
    <dependencies> 
     <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework-version}</version> 
      <exclusions> 
       <!-- Exclude Commons Logging in favor of SLF4j --> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 

     <!-- Hibernate --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 

     <!-- Apache Commons DBCP --> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <!-- Spring ORM --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 

     <!-- AspectJ --> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${org.aspectj-version}</version> 
     </dependency> 

     <!-- Logging --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.15</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.mail</groupId> 
        <artifactId>mail</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>javax.jms</groupId> 
        <artifactId>jms</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jdmk</groupId> 
        <artifactId>jmxtools</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jmx</groupId> 
        <artifactId>jmxri</artifactId> 
       </exclusion> 
      </exclusions> 
      <scope>runtime</scope> 
     </dependency> 

     <!-- @Inject --> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 

     <!-- Servlet --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <!-- Test --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.7</version> 
      <scope>test</scope> 
     </dependency> 

    </dependencies> 

,

종속성의 위 목록에 PostgreSQL을 실행 종속를 추가 4 MVC 응용 프로그램을 최대 절전 모드.

+0

지금 언급 한 종속성을 시도하고 있지만 여전히 최대 절전 모드 및 기타 종속성을 완료하려면 몇 가지를 추가해야합니다. 고마워 user3487063 –

+0

내 편집 된 pom을 참조하십시오. – user3487063

+0

안녕하세요, 이전 POM을 사용했지만 필요한 오류가 추가되었습니다. 여전히 같은 오류입니다. 내 질문이 업데이트 된 POM 파일로 변경되었습니다. 또한, 내가 직접 POM 파일을 사용하면 오류가 발생합니다.구문은 $ {org.springframework-version}입니다. 이 구문이 작동하지 않거나 수동으로 추가해야한다는 의미입니까? –

0

java.lang.ClassNotFoundException은 클래스 로더가 지정된 클래스를 찾을 수 없을 때 발생합니다. 따라서 WAR 파일 (또는 WAR을 배포하지 않는 경우 응용 프로그램 배포 디렉토리)은 WEB-INF/lib 디렉토리 (해당 웹 응용 프로그램의 모든 웹 사이트가있는 위치)에 적절한 스프링 JAR이 없습니다. 빌드시에 덤프되는 maven 종속성).

당신은 일반적으로 응용 프로그램 배포 디렉토리에 (A WAR 파일) 배포 된 웹 응용 프로그램을 찾을 수 있습니다 :

[TOMCAT_HOME]/webapps/[myWebApplication] 

WTP를 사용하여 이클립스를 통해 배포 할 경우,이 디렉토리는 가능성이 실제 Tomcat 설치 다릅니다. 그것은 당신이 당신의 이클립스 톰캣 서버 구성을 검사하여 정확한 디렉토리를 찾을 수있는 무언가

[ECLIPSE_WORKSPACE]/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/[myWebApplication] 

처럼 될 것이다, 그것은 "서버 위치"(이클립스 서버 탭에서 Tomcat v[Version] Server at localhost 더블 클릭)라는 이름의 섹션이 있습니다.

관련 문제