2017-08-18 33 views
1
WARNING: Exception encountered during context initialization - cancelling refresh attempt 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'registrationController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.concept.UserService com.concept.RegistrationController.userService; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.concept] for bean with name 'UserService' defined in ServletContext resource [/WEB-INF/Spring-servlet.xml]; nested exception is java.lang.ClassNotFoundException: com.concept 

你能幫幫可能是什麼。我是新來的Spring框架例外 - 取消刷新嘗試

WARNING: Exception encountered during context initialization - cancelling refresh attempt 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'registrationController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.concept.UserService com.concept.RegistrationController.userService; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.concept] for bean with name 'UserService' defined in ServletContext resource [/WEB-INF/Spring-servlet.xml]; nested exception is java.lang.ClassNotFoundException: com.concept 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1202) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) 
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) 
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) 
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) 
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:158) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1227) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1140) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1027) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5038) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5348) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    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:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
    at java.lang.Thread.run(Thread.java:748) 

這裏的原因是我的控制器

package com.concept; 

    import org.springframework.beans.factory.annotation.Autowired; 
    import org.springframework.stereotype.Controller; 
    import org.springframework.web.bind.annotation.*; 
    import com.concept.UserService; 
    import com.concept.User; 

    @Controller 
    public class RegistrationController { 

    @Autowired 
    UserService userService; 
    @RequestMapping("/insert")   
    public String inserData(@ModelAttribute User user) { 
    if (user != null) 
     userService.insertData(user); 

     return "result" ; 
     } 
     } 

這裏是user.java

package com.concept; 

    public class User { 
     private String firstName; 
     private String lastName; 
     private Integer age; 
     private String email; 
     public String getFirstName() { 
      return firstName; 
      } 


public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 
    public String getLastName() { 
     return lastName; 
    } 
    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 
    public Integer getAge() { 
     return age; 
    } 
    public void setAge(Integer age) { 
     this.age = age; 
    } 
    public String getEmail() { 
     return email; 
    } 
    public void setEmail(String email) { 
     this.email = email; 
    } 


    } 

這裏是我的UserDAO.java

package com.concept; 

import javax.sql.DataSource; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.jdbc.core.JdbcTemplate; 

public class UserDAO implements UserService { 
    @Autowired 
    DataSource dataSource; 

    public void insertData(User user) { 

     String sql = "INSERT INTO Enroll(first_name,last_name, age, email) VALUES (?, ?, ?,?)"; 

     JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); 

     jdbcTemplate.update(sql, new Object[] { user.getFirstName(), user.getLastName(), 
      user.getAge(),user.getEmail() }); 

    } 
} 

這裏是我的UserService.java

package com.concept; 


public interface UserService { 
    public void insertData(User user); 
} 

這裏是我爲spring-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:p="http://www.springframework.org/schema/p" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

<context:annotation-config /> 

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

<!-- adding view resolver to show jsp's on browser --> 
<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

    <bean id="UserService" class="com.concept"/> 


<!-- declare datasource bean --> 
<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="oracle.jdbc.OracleDriver" /> 
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" /> 
    <property name="username" value="EMPLOYEE" /> 
    <property name="password" value="pass1234" /> 
</bean> 
</beans> 

,這裏是我的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5"> 


<display-name>Spring MVC Application</display-name> 

<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>/</url-pattern> 
</servlet-mapping> 
</web-app> 
+0

改變這一行接口:'<豆ID = 「userService」 級=「class.to.init。 UserService.interface「/>' –

回答

1

參見根源:nested exception is java.lang.ClassNotFoundException: com.concept

刪除行<bean id="UserService" class="com.concept"/>

因爲com.concept是包不是類。你也不應該混合基於XML和Annotation的配置。

並添加@Repositorypublic class UserDAO implements UserService {

但我不明白你爲什麼DAO實現所謂的服務