严重:Web应用程序中的Servlet [spring]引发了load()异常

时间:2016-07-23 17:09:14

标签: java spring

我是春天的新手我试图执行此应用程序,我得到了像这样的例外

SEVERE: Servlet [spring] in web application [/loginDB] threw load()    exception
java.lang.ClassNotFoundException: org.springframework.beans.factory.Aware
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2503)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:831)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2503)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:831)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2503)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:831)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:518)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:499)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1102)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1038)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4996)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Jul 23, 2016 10:01:18 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable            debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve       startup time and JSP compilation time.
 Jul 23, 2016 10:01:18 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
 Jul 23, 2016 10:01:18 PM org.apache.catalina.core.ApplicationContext log
 INFO: Initializing Spring FrameworkServlet 'spring'
 Jul 23, 2016 10:01:18 PM org.springframework.web.servlet.DispatcherServlet initServletBean
INFO: FrameworkServlet 'spring': initialization started
 Jul 23, 2016 10:01:18 PM org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
 INFO: Refreshing WebApplicationContext for namespace 'spring-servlet': startup date [Sat Jul 23 22:01:18 IST 2016]; root of context hierarchy
 Jul 23, 2016 10:01:18 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
 INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-servlet.xml]
 Jul 23, 2016 10:01:19 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
 INFO: Mapped URL path [/test] onto handler 'welcomeController'
 Jul 23, 2016 10:01:19 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
 INFO: Mapped URL path [/test.*] onto handler 'welcomeController'
 Jul 23, 2016 10:01:19 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
 INFO: Mapped URL path [/test/] onto handler 'welcomeController'
 Jul 23, 2016 10:01:19 PM org.springframework.web.servlet.DispatcherServlet initServletBean
 INFO: FrameworkServlet 'spring': initialization completed in 1283 ms
 Jul 23, 2016 10:01:19 PM org.apache.coyote.AbstractProtocol start
 INFO: Starting ProtocolHandler ["http-nio-2016"]
 Jul 23, 2016 10:01:19 PM org.apache.coyote.AbstractProtocol start
 INFO: Starting ProtocolHandler ["ajp-nio-8009"]
 Jul 23, 2016 10:01:19 PM org.apache.catalina.startup.Catalina start
 INFO: Server startup in 6529 ms
 Jul 23, 2016 10:01:20 PM org.apache.catalina.core.ApplicationDispatcher invoke
WARNING: Servlet spring is currently unavailable

的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.form</url-pattern>
    </servlet-mapping>
</web-app>

弹簧servlet.xml中

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- enable component scanning -->
<context:component-scan base-package="pack1"/>
<!-- handlermapping -->
<bean id="handlermapping"            class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotation
HandlerMapping"/>
 <!-- view resolverconfiguration -->
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
 <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
 <property name="database" ref="ds"/> 
</bean>
<bean id="ds"   class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1522:orcl1"/>
<property name="username" value="scott"/>
 <property name="password" value="sada"/>
</bean>

LoginController.java

package pack1.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import pack1.dao.LoginDao;

 @Controller
public class LoginController {
@Autowired
private LoginDao dao;
@RequestMapping(value="/logins",method=RequestMethod.GET)
public ModelAndView getLoginPage()
{
    return new ModelAndView("login");
}
@RequestMapping(value="/check",method=RequestMethod.POST)
public ModelAndView checkLogin(@RequestParam("t1") String  s1,@RequestParam("t2")String s2)
{
    boolean b=dao.check(s1, s2);
    if(b)
    {
        return new ModelAndView("success");
    }
    else
    {
        return new ModelAndView("failure");
    }
}
}

loginDao.java(I)

package pack1.dao;

public interface LoginDao {
boolean check(String s1,String s2);
}

loginDaoImpl.java(c)中

 package pack1.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository 
public class LoginDaoImpl implements LoginDao {
@Autowired
private JdbcTemplate jt;
public boolean check(String s1, String s2) {
    int i=(Integer)jt.queryForObject("select count(*) from login where username=? and password=?",Integer.class,s1,s2);
    if(i==1)
        return true;
        else
        return false;
 }
 }

的index.jsp

<jsp:forward page="logins.form"></jsp:forward>

的pom.xml

 <project xmlns="http://maven.apache.org/POM/4.0.0"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>com.sada</groupId>
 <artifactId>loginDB</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>

 <name>loginDB</name>
 <url>http://maven.apache.org</url>

 <dependencies>
  <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>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.0.6.RELEASE</version>
 </dependency>
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc   -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>4.3.1.RELEASE</version>
 </dependency>
 <!-- https://mvnrepository.com/artifact/com.oracle/ojdbc14 -->
 <dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0</version>
  </dependency>
</dependencies>

 <build>
 <plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
      <source>1.5</source>
       <target>1.5</target>
      </configuration>
     </plugin>
    </plugins>
  </build>
</project>

和其他一些jsp页面。任何人都可以帮我解决问题

3 个答案:

答案 0 :(得分:1)

检查你的Spring版本。可能已经过时了。将其更新到最新版本,然后运行该程序。

java.lang.NoClassDefFoundError: org/springframework/beans/factory/Aware

答案 1 :(得分:1)

在你的pom中你有3.0.6.RELEASE依赖项。它太旧了

像这样升级你的spring jdbc:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.3.1.RELEASE</version>
</dependency>

答案 2 :(得分:0)

<bean id="edao" class="pack1.dao.loginDao">  
<property name="template" ref="jt"></property>  
</bean>  

添加spring-servlet.xml。