2016-09-26 17 views
-1

我使用面臨的問題如何擺脫這個異常「沒有bean名爲'userDetailsS​​ervice'被定義」雖然它是在xml文件中定義的?

DataController.java

package com.anzy.controller; 
import java.util.List; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestParam; 
import org.springframework.web.servlet.ModelAndView; 

import com.anzy.dao.DataDao; 
import com.anzy.domain.Employee; 
@Controller 
public class DataController { 

@Autowired 
DataDao dataDao; 

@RequestMapping("form") 
public ModelAndView getForm(@ModelAttribute Employee employee) { 
    return new ModelAndView("form"); 
} 

@RequestMapping("register") 
public ModelAndView registerUser(@ModelAttribute Employee employee) { 
    dataDao.insertRow(employee); 
    return new ModelAndView("redirect:list"); 
} 

@RequestMapping("list") 
public ModelAndView getList() 
{ 
    List employeeList = dataDao.getList(); 

    return new ModelAndView("list", "employeeList", employeeList); 
} 

@RequestMapping("delete") 
public ModelAndView deleteUser(@RequestParam int id) { 
    dataDao.deleteRow(id); 
    return new ModelAndView("redirect:list"); 
} 

@RequestMapping("edit") 
public ModelAndView editUser(@RequestParam int id, 
    @ModelAttribute Employee employee) { 
    Employee employeeObject = dataDao.getRowById(id); 
    return new ModelAndView("edit", "employeeObject", employeeObject); 
} 

@RequestMapping("update") 
public ModelAndView updateUser(@ModelAttribute Employee employee) { 
    dataDao.updateRow(employee); 
    return new ModelAndView("redirect:list"); 
} 

} 

User.java

package com.anzy.domain; 

import java.io.Serializable; 
import java.util.List; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.EnumType; 
import javax.persistence.Enumerated; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.JoinTable; 
import javax.persistence.ManyToMany; 

@Entity 
public class User implements Serializable 
{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private int id; 

    @Column(name="username") 
    private String username; 

    @Column(name="password") 
    private String password; 
    @ManyToMany 
    @JoinTable(name="UserAndRoles",[email protected](name="user_id"),[email protected](name="role_id")) 
    private List<Role> roles; 

    @Enumerated(EnumType.STRING) 
    private UserStatus status; 

    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getUsername() { 
     return username; 
    } 
    public void setUsername(String username) { 
     this.username = username; 
    } 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 
    public UserStatus getStatus() { 
     return status; 
    } 
    public void setStatus(UserStatus status) { 
     this.status = status; 
    } 
    public List<Role> getRoles() { 
     return roles; 
    } 
    public void setRoles(List<Role> roles) { 
     this.roles = roles; 
    } 

} 

Role.java

package com.anzy.domain; 

import java.util.List; 

import javax.persistence.Column; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.ManyToMany; 

public class Role 
{ 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private int id; 

    @Column(name="roleName") 
    private String roleName; 
    @ManyToMany(mappedBy="roles") 
    private List<User>users; 

    public Role(int id, String roleName, List<User> users) 
    { 
     super(); 
     this.id = id; 
     this.roleName = roleName; 
     this.users = users; 
    } 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getRoleName() { 
     return roleName; 
    } 
    public void setRoleName(String roleName) { 
     this.roleName = roleName; 
    } 
    public List<User> getUsers() { 
     return users; 
    } 
    public void setUsers(List<User> users) { 
     this.users = users; 
    } 


} 

UserStatus.java

數據庫試圖春季安全認證
package com.anzy.domain; 

public enum UserStatus 
{ 
    ACTIVE, 
    INACTIVE; 

} 

Employee.java

package com.anzy.domain; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Id; 
import javax.persistence.Table; 

@Entity 
@Table(name="employetest") 
public class Employee { 

@Id 
@GeneratedValue 
private int id; 

@Column(name = "firstname") 
private String firstName; 

@Column(name = "lastname") 
private String lastName; 

@Column(name = "email") 
private String email; 

@Column(name = "phone") 
private String phone; 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 

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 String getEmail() { 
    return email; 
} 

public void setEmail(String email) { 
    this.email = email; 
} 

public String getPhone() { 
    return phone; 
} 

public void setPhone(String phone) { 
    this.phone = phone; 
} 

} 

UserDao.java

package com.anzy.dao; 

import java.util.List; 

import com.anzy.domain.User; 

public interface UserDao 
{ 
    void addUser(User user); 
    void editUser(User user); 
    void deleteUser(int userId); 
    User findUser(int useId); 
    User findUserByName(String username); 
    List<User> getAllUser(); 



} 

UserDaoImpl.java

package com.anzy.dao; 

import java.util.List; 

import org.hibernate.Criteria; 
import org.hibernate.SessionFactory; 
import org.hibernate.criterion.Restrictions; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 

import com.anzy.domain.User; 
@Repository 
public class UserDaoImpl implements UserDao 
{ 
    @Autowired 
    private SessionFactory session; 

    public void addUser(User user) 
    { 
     session.getCurrentSession().save(user); 

    } 

    public void editUser(User user) { 
     session.getCurrentSession().update(user); 


    } 

    public void deleteUser(int userId) { 
     session.getCurrentSession().delete(findUser(userId)); 

    } 

    public User findUser(int userId) { 
     return (User) session.getCurrentSession().get(User.class,userId); 
    } 

    public User findUserByName(String username) { 
Criteria criteria=session.getCurrentSession().createCriteria(User.class); 
criteria.add(Restrictions.eq("username", username)); 
     return (User)criteria.uniqueResult(); 
    } 

    public List<User> getAllUser() { 
     // TODO Auto-generated method stub 
     return session.getCurrentSession().createQuery("from User").list(); 
    } 

} 

UserDetailsS​​erviceImpl.java

package com.anzy.services; 

import java.util.ArrayList; 
import java.util.Collection; 

import org.springframework.transaction.annotation.Transactional; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.security.core.GrantedAuthority; 
import org.springframework.security.core.authority.SimpleGrantedAuthority; 
import org.springframework.security.core.userdetails.UserDetails; 
import org.springframework.security.core.userdetails.UserDetailsService; 
import org.springframework.security.core.userdetails.UsernameNotFoundException; 
import org.springframework.stereotype.Service; 
import com.anzy.dao.UserDao; 
import com.anzy.domain.Role; 
import com.anzy.domain.User; 
import com.anzy.domain.UserStatus; 
@Service("userDetailsService") 
public class UserDetailsServiceImpl implements UserDetailsService 
{ 
    @Autowired 
    private UserDao userDao; 

    @Transactional(readOnly=true) 
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException 
    { 
     User user=userDao.findUserByName(username); 
     if(user!=null) 
     { 
      String password=user.getPassword(); 
      boolean enabled=user.getStatus().equals(UserStatus.ACTIVE); 
      boolean accountNonExpired=user.getStatus().equals(UserStatus.ACTIVE); 
      boolean credentialsNonExpired=user.getStatus().equals(UserStatus.ACTIVE); 
      boolean accountNonLocked=user.getStatus().equals(UserStatus.ACTIVE); 
      Collection <GrantedAuthority> authorities=new ArrayList<GrantedAuthority>(); 
     for(Role role:user.getRoles()) 
     { 
      authorities.add(new SimpleGrantedAuthority(role.getRoleName())); 
     } 
org.springframework.security.core.userdetails.User secureUser=new org.springframework.security.core.userdetails.User(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities); 
    return secureUser; 
     } 
     else 
     { 
      throw new UsernameNotFoundException("User not found !!!"); 

     } 
    } 

} 

DataDao.java

package com.anzy.dao; 

import java.util.List; 

import com.anzy.domain.Employee; 

public interface DataDao 
{ 
public int insertRow(Employee employee); 

public List<Employee> getList(); 

public Employee getRowById(int id); 

public int updateRow(Employee employee); 

public int deleteRow(int id); 

} 

DataDaoImpl.java

package com.anzy.dao; 

import java.io.Serializable; 
import java.util.List; 

import javax.transaction.Transactional; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.springframework.beans.factory.annotation.Autowired; 

import com.anzy.domain.Employee; 

public class DataDaoImpl implements DataDao { 

@Autowired 
SessionFactory sessionFactory; 

@Transactional 
public int insertRow(Employee employee) { 
    Session session = sessionFactory.openSession(); 
    Transaction tx = session.beginTransaction(); 
    session.saveOrUpdate(employee); 
    tx.commit(); 
    Serializable id = session.getIdentifier(employee); 
    session.close(); 
    return (Integer) id; 
} 

public List getList() { 
    Session session = sessionFactory.openSession(); 
    @SuppressWarnings("unchecked") 
    List employeeList = session.createQuery("from Employee") 
    .list(); 
    session.close(); 
    return employeeList; 
} 

public Employee getRowById(int id) { 
    Session session = sessionFactory.openSession(); 
    Employee employee = (Employee) session.load(Employee.class, id); 
    System.out.println(employee); 
    return employee; 
} 

public int updateRow(Employee employee) { 
    Session session = sessionFactory.openSession(); 
    Transaction tx = session.beginTransaction(); 
    session.saveOrUpdate(employee); 
    tx.commit(); 
    Serializable id = session.getIdentifier(employee); 
    session.close(); 
    return (Integer) id; 
} 

public int deleteRow(int id) { 
    Session session = sessionFactory.openSession(); 
    Transaction tx = session.beginTransaction(); 
    Employee employee = (Employee) session.load(Employee.class, id); 
    session.delete(employee); 
    tx.commit(); 
    Serializable ids = session.getIdentifier(employee); 
    session.close(); 
    return (Integer) ids; 
} 

} 

彈簧-config.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" 
xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 
    <context:component-scan base-package="com.anzy" /> 
    <context:property-placeholder location="classpath:database.properties" /> 
    <mvc:annotation-driven /> 
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"> 
     <property name="driverClassName" value="${database.driver}" /> 
     <property name="url" value="${database.url}" /> 
     <property name="username" value="${database.user}" /> 
     <property name="password" value="${database.password}" /> 
     <property name="initialSize" value="20" /> 
</bean> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.anzy.domain.Employee</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
       <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="txManager" 
     class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <bean id="persistenceExceptionTranslationPostProcessor" 
     class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/pages/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 
    <bean id="dataDaoImpl" class="com.anzy.dao.DataDaoImpl" /> 

<!-- <bean id="dataServiceImpl" class="com.beingjavaguys.services.DataServiceImpl" /> 
--> 
</beans> 

彈簧的security.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    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-3.0.xsd 
     http://www.springframework.org/schema/security 
     http://www.springframework.org/schema/security/spring-security.xsd"> 

<http auto-config="true"> 
    <intercept-url pattern="/*" access="isAuthenticated()"/> 
     <form-login /> 
<!--   <logout invalidate-session="true" /> 
--> </http> 

    <!-- <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="joseph" password="bagnes" authorities="Admin,User" /> 
       <user name="bernabe" password="jose" authorities="User" /> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> --> 

    <beans:bean id="daoAuthenticationProvider" class=" org.springframework.security.authentication.dao.DaoAuthenticationProvider"> 
    <beans:property name="userDetailsService" ref="userDetailsService"></beans:property> 
    </beans:bean> 

    <beans:bean id="authenticationManager" class="org.springframework.security.authentication.AuthenticationProvider"> 
     <beans:property name="providers"> 
     <beans:list> 
     <beans:ref local="daoAuthenticationProvider"/> 
     </beans:list> 
     </beans:property> 
    </beans:bean> 
    <authentication-manager> 
    <authentication-provider user-service-ref="userDetailsService"> 
    <password-encoder hash="md5"></password-encoder> 
    </authentication-provider> 
    </authentication-manager> 

</beans:beans> 

的web.xml

<web-app 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" 
    version="2.5"> 

    <display-name>Sample Spring Maven Project</display-name> 
    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring-config.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/spring-security.xml 
     </param-value> 
    </context-param> 
    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <listener> 
     <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> 
    </listener> 

</web-app> 
+0

的我編輯的回答這個問題的例外,它應該現在的工作(爲您的項目的簡化版本)。一般來說,也許很明顯,儘可能簡化這些問題常常使得他們的解決方案更容易。我也認爲你的問題被低估了,因爲你沒有充分簡化你的項目,同時保留錯誤,並以最簡單的方式提出問題。 –

+1

@JohnDonn,最好教會如何釣魚或釣魚,而不是直接餵它們。 –

+0

@John Dohn,非常感謝。 –

回答

0

(從以前的版本編輯)

我創建了一個簡單的設置你的問題,並得到了代碼工作。

這裏有兩個Java類,第一服務(在essense存根,我並沒有試圖進一步簡化它,該代碼有沒有特別的意義):

package com.anzy.services; 

import java.util.ArrayList; 
import java.util.Collection; 

import org.springframework.security.core.GrantedAuthority; 
import org.springframework.security.core.authority.SimpleGrantedAuthority; 
import org.springframework.security.core.userdetails.UserDetails; 
import org.springframework.security.core.userdetails.UserDetailsService; 
import org.springframework.security.core.userdetails.UsernameNotFoundException; 
import org.springframework.stereotype.Service; 
import org.springframework.transaction.annotation.Transactional; 
@Service("userDetailsService") 
public class UserDetailsServiceImpl implements UserDetailsService 
{ 

    @Transactional(readOnly=true) 
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException 
    { 

     Collection <GrantedAuthority> authorities=new ArrayList<GrantedAuthority>(); 
     authorities.add(new SimpleGrantedAuthority("ROLE_USER")); 

     org.springframework.security.core.userdetails.User secureUser=new org.springframework.security.core.userdetails.User("user", "user", true, true, true, true, authorities); 
     return secureUser; 
    } 

} 

這裏是控制器(再次,簡化爲只設一個方法)

package com.anzy.controller; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 
@Controller 
public class DataController { 

@RequestMapping("form") 
public ModelAndView getForm() { 
    return new ModelAndView("form"); 
} 

} 

四個文件下WEB-INF是:

彈簧-config.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" 
xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 
    <context:component-scan base-package="com.anzy"> 
     <context:exclude-filter type="regex" expression="com.anzy.controller.*"/> 
    </context:component-scan> 

    <mvc:annotation-driven /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/pages/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

</beans> 

spring-mvc。XML

<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-3.2.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 

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

</beans> 

彈簧security.xml文件(請注意,我說use-expressions="true"到元素<http..

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

<http auto-config="true" use-expressions="true"> 
    <intercept-url pattern="/*" access="isAuthenticated()"/> 
     <form-login /> 
</http> 


    <authentication-manager> 
     <authentication-provider user-service-ref="userDetailsService"/> 
    </authentication-manager> 

</bean:beans> 

的web.xml

<web-app 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" 
    version="2.5"> 

    <display-name>Sample Spring Maven Project</display-name> 
    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring-mvc.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/spring-security.xml 
      /WEB-INF/spring-config.xml 
     </param-value> 
    </context-param> 
    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <listener> 
     <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> 
    </listener> 

</web-app> 

生成的Web應用程序在啓動時不例外。

但是,如果我在web.xml改變

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/spring-security.xml 
      /WEB-INF/spring-config.xml 
     </param-value> 
    </context-param> 

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/spring-security.xml 
     </param-value> 
    </context-param> 

<servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring-mvc.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

<servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring-config.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

然後我得到確切地說這是你的問題

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'userDetailsService' is defined 
+0

我嘗試了你的方式朋友,並且遇到了更復雜的錯誤,包括以前的錯誤:) –

相關問題