Pessoal estou com um problema, esse é meu springConfigurator ele esta reclamando do autowired Porque?
Esta é a stack]
out 27, 2016 6:41:50 PM org.apache.tomcat.util.digester.SetPropertiesRule begin ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:JwPreach’ did not find a matching property. out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Server version: Apache Tomcat/8.0.36 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Server built: Jun 9 2016 13:55:50 UTC out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Server number: 8.0.36.0 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: OS Name: Windows 8.1 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: OS Version: 6.3 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Architecture: amd64 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Java Home: C:\Program Files\Java\jre1.8.0_111 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: JVM Version: 1.8.0_111-b14 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: JVM Vendor: Oracle Corporation out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: CATALINA_BASE: C:\Users\Fernando\workspace-jwpreach-final.metadata.plugins\org.eclipse.wst.server.core\tmp0 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: CATALINA_HOME: C:\Users\Fernando\workspace-jwpreach-final\Server\apache-tomcat-8.0.36 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\Users\Fernando\workspace-jwpreach-final.metadata.plugins\org.eclipse.wst.server.core\tmp0 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\Users\Fernando\workspace-jwpreach-final\Server\apache-tomcat-8.0.36 out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\Users\Fernando\workspace-jwpreach-final.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\Users\Fernando\workspace-jwpreach-final\Server\apache-tomcat-8.0.36\endorsed out 27, 2016 6:41:50 PM org.apache.catalina.startup.VersionLoggerListener log INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252 out 27, 2016 6:41:50 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_111\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_111/bin/server;C:/Program Files/Java/jre1.8.0_111/bin;C:/Program Files/Java/jre1.8.0_111/lib/amd64;C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\binaries\php\php_runningversion;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;C:\Program Files (x86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files\Intel\Intel® Management Engine Components\DAL;C:\Program Files\Intel\Intel® Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel® Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel® Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Lenovo\Bluetooth Software;C:\Program Files\Lenovo\Bluetooth Software\syswow64;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files\SafeNet\Authentication\SAC\x32;C:\Program Files\SafeNet\Authentication\SAC\x64;C:\Program Files (x86)\QuickTime\QTSystem;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files (x86)\Skype\Phone;C:\WINDOWS\system32\config\systemprofile.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm;C:\Program Files\Microsoft SQL Server\120\Tools\Binn;C:\Program Files\Git\cmd;C:\Program Files\Java\jdk1.8.0_77\bin;C:\Program Files (x86)\Heroku\bin;C:\Program Files (x86)\git\cmd;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files (x86)\nodejs;C:\Users\Fernando\AppData\Local\atom\bin;C:\Program Files (x86)\Microsoft VS Code\bin;C:\Users\Fernando\AppData\Roaming\npm;C:\Users\Fernando\AppData\Roaming\ClassicShell\Pinned;;. out 27, 2016 6:41:51 PM org.apache.coyote.AbstractProtocol init INFORMAÇÕES: Initializing ProtocolHandler [“http-nio-8080”] out 27, 2016 6:41:51 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFORMAÇÕES: Using a shared selector for servlet write/read out 27, 2016 6:41:51 PM org.apache.coyote.AbstractProtocol init INFORMAÇÕES: Initializing ProtocolHandler [“ajp-nio-8009”] out 27, 2016 6:41:51 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFORMAÇÕES: Using a shared selector for servlet write/read out 27, 2016 6:41:51 PM org.apache.catalina.startup.Catalina load INFORMAÇÕES: Initialization processed in 1689 ms out 27, 2016 6:41:51 PM org.apache.catalina.core.StandardService startInternal INFORMAÇÕES: Starting service Catalina out 27, 2016 6:41:51 PM org.apache.catalina.core.StandardEngine startInternal INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/8.0.36 out 27, 2016 6:41:56 PM org.apache.jasper.servlet.TldScanner scanJars INFORMAÇÕES: 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. out 27, 2016 6:41:56 PM org.apache.catalina.core.ApplicationContext log INFORMAÇÕES: Spring WebApplicationInitializers detected on classpath: [br.com.jwpreach.conf.ServletSpringMVC@3e765212, br.com.jwpreach.conf.SpringSecurityFilterConfiguration@4711f9a1] log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment). log4j:WARN Please initialize the log4j system properly. log4j:WARN See <a href="http://logging.apache.org/log4j/1.2/faq.html#noconfig">http://logging.apache.org/log4j/1.2/faq.html#noconfig</a> for more info. out 27, 2016 6:41:57 PM org.apache.catalina.core.ApplicationContext log INFORMAÇÕES: Initializing Spring root WebApplicationContext out 27, 2016 6:42:04 PM org.apache.catalina.core.StandardContext listenerStart GRAVE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘securityConfiguration’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.jwpreach.daos.UserDAOImpl br.com.jwpreach.conf.SecurityConfiguration.userDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.jwpreach.daos.UserDAOImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:326) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1204) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:725) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4840) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.jwpreach.daos.UserDAOImpl br.com.jwpreach.conf.SecurityConfiguration.userDAO; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.jwpreach.daos.UserDAOImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:542) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:323) … 22 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [br.com.jwpreach.daos.UserDAOImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1261) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1009) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:904) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514) … 24 more
out 27, 2016 6:42:04 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: One or more listeners failed to start. Full details will be found in the appropriate container log file
out 27, 2016 6:42:04 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/jwpreach] startup failed due to previous errors
out 27, 2016 6:42:04 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: Closing Spring root WebApplicationContext
out 27, 2016 6:42:04 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesJdbc
ADVERTÊNCIA: The web application [jwpreach] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
out 27, 2016 6:42:04 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler [“http-nio-8080”]
out 27, 2016 6:42:04 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler [“ajp-nio-8009”]
out 27, 2016 6:42:04 PM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 13179 ms`
E estas são as classes
UserDaoImpl
`package br.com.jwpreach.daos;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.hibernate.Session;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import br.com.jwpreach.models.User;
public class UserDAOImpl implements UserDetailsService,UserDAO {
@PersistenceContext
private EntityManager manager;
public User loadUserByUsername(String email) {
List<User> usuarios = manager.createQuery("select u from User u where u.email = :email", User.class)
.setParameter("email", email).getResultList();
if (usuarios.isEmpty()) {
throw new UsernameNotFoundException("Usuário com o email " + email + " não foi encontrado");
}
return usuarios.get(0);
}
public void addUser(User user) {
manager.persist(user);
}
public void updateUser(User user) {
manager.merge(user);
}
public User getUser(int id) {
User user = (User) ((Session) manager).get(User.class, id);
return user;
}
public void deleteUser(int id) {
User user = getUser(id);
if (user != null) {
manager.remove(user);
}
}
public List<User> listUsers() {
return manager.createQuery("select * from user", User.class).getResultList();
}
}
`
UserDAO.class
`package br.com.jwpreach.daos;
import java.util.List;
import br.com.jwpreach.models.User;
public interface UserDAO {
public void addUser(User user);
public void updateUser(User user);
public User getUser(int id);
public void deleteUser(int id);
public List<User> listUsers();
}
`
UserDAOclass
`package br.com.jwpreach.daos;
import java.util.List;
import br.com.jwpreach.models.User;
public interface UserDAO {
public void addUser(User user);
public void updateUser(User user);
public User getUser(int id);
public void deleteUser(int id);
public List<User> listUsers();
}
`
SpringConfiguration.class
`package br.com.jwpreach.conf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import br.com.jwpreach.daos.UserDAOImpl;
@ComponentScan("br.com.jwpreach.daos.UserDAOImpl")
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private UserDAOImpl userDAO;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/users").hasRole("SECRETARY")
.antMatchers("/report").hasAnyRole("PUBLISHER","ADMIN","SECRETARY","ELDER")
.antMatchers("/resources/**").permitAll()
.antMatchers("/").hasAnyRole("ADMIN","PUBLISHER","SECRETARY","ELDER")
.anyRequest().authenticated()
.and().formLogin().loginPage("/login").permitAll()
.and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"));
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDAO).passwordEncoder(new BCryptPasswordEncoder());
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}
}
VLWWWWW