Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- INFO: Starting Coyote HTTP/1.1 on http-8080
- Sep 11, 2014 5:12:54 PM org.apache.catalina.core.StandardWrapperValve invoke
- SEVERE: Servlet.service() for servlet mvc-dispatcher threw exception
- org.hibernate.HibernateException: No Session found for current thread
- at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
- at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:988)
- at com.mytravly.travlyweb.dao.AbstractHibernateDAO.getCurrentSession(AbstractHibernateDAO.java:52)
- at com.mytravly.travlyweb.dao.AbstractHibernateDAO.findAll(AbstractHibernateDAO.java:30)
- at com.mytravly.travlyweb.service.UserService.getAll(UserService.java:35)
- at com.mytravly.travlyweb.controller.MainController.defaultPage(MainController.java:35)
- 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:601)
- at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
- at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
- at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
- at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
- at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
- at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
- at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
- at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
- at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
- at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
- at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:85)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
- at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
- at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
- at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
- at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
- at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
- at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
- at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
- at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
- at java.lang.Thread.run(Thread.java:722)
- <display-name>TravlyWeb</display-name>
- <!-- Spring MVC -->
- <servlet>
- <servlet-name>mvc-dispatcher</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>mvc-dispatcher</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- /WEB-INF/spring-database.xml,
- /WEB-INF/spring-security.xml
- </param-value>
- </context-param>
- <!-- Spring Security -->
- <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>
- </web-app>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
- <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://localhost:3306/travlywebdb" />
- <property name="username" value="root" />
- <property name="password" value="" />
- <property name="validationQuery" value="SELECT 1" />
- </bean>
- <bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
- <property name="dataSource" ref="myDataSource"/>
- <property name="packagesToScan">
- <array>
- <value>com.mytravly.travlyweb</value>
- </array>
- </property>
- <property name="hibernateProperties">
- <value>
- hibernate.dialect=org.hibernate.dialect.MySQLDialect
- </value>
- </property>
- </bean>
- <!--
- <bean id="userDao" class="com.mytravly.travlyweb.dao.UserDaoImpl">
- <property name="sessionFactory" ref="mySessionFactory" />
- </bean>
- <bean id="myUserDetailsService" class="com.mytravly.travlyweb.service.MyUserDetailsService">
- <property name="userDao" ref="userDao" />
- </bean> -->
- <!-- Hibernate Transaction Manager -->
- <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
- <property name="sessionFactory" ref="mySessionFactory"/>
- </bean>
- <!-- Activates annotation based transaction management -->
- <tx:annotation-driven transaction-manager="transactionManager"/>
- </beans>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- 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.2.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.2.xsd">
- <!-- Enable @Controller annotation support -->
- <mvc:annotation-driven />
- <context:component-scan base-package="com.mytravly.travlyweb" />
- <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>
- <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.2.xsd
- http://www.springframework.org/schema/security
- http://www.springframework.org/schema/security/spring-security-3.2.xsd">
- <!-- enable use-expressions -->
- <http auto-config="true" use-expressions="true">
- <intercept-url pattern="/admin**" access="hasRole('ROLE_ADMIN')" />
- <!-- access denied page -->
- <access-denied-handler error-page="/403" />
- <form-login login-page="/login" default-target-url="/welcome"
- authentication-failure-url="/login?error" username-parameter="username"
- password-parameter="password" />
- <logout logout-success-url="/login?logout" />
- <!-- enable csrf protection -->
- <csrf />
- </http>
- <!--
- <authentication-manager>
- <authentication-provider user-service-ref="myUserDetailsService">
- <password-encoder hash="plaintext" />
- </authentication-provider>
- </authentication-manager> -->
- <authentication-manager>
- <authentication-provider>
- <jdbc-user-service data-source-ref="myDataSource"
- users-by-username-query="select username,password from user where username = ?"
- authorities-by-username-query="select username,authority from authorities where username = ?" />
- </authentication-provider>
- </authentication-manager>
- </beans:beans>
- package com.mytravly.travlyweb.controller;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.authentication.AnonymousAuthenticationToken;
- import org.springframework.security.authentication.BadCredentialsException;
- import org.springframework.security.authentication.LockedException;
- import org.springframework.security.core.Authentication;
- import org.springframework.security.core.context.SecurityContextHolder;
- import org.springframework.security.core.userdetails.UserDetails;
- import org.springframework.stereotype.Controller;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- 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 com.mytravly.travlyweb.bean.User;
- import com.mytravly.travlyweb.service.UserService;
- @Controller
- @Transactional(propagation = Propagation.REQUIRES_NEW)
- public class MainController {
- @Autowired
- UserService service;
- @RequestMapping(value = { "/", "/welcome**" }, method = RequestMethod.GET)
- public ModelAndView defaultPage() {
- List<User> list = service.getAll();
- ModelAndView model = new ModelAndView();
- model.addObject("title", "Spring Security + Hibernate Example");
- model.addObject("message", list.get(0).getUsername());
- model.setViewName("hello");
- return model;
- }
- @RequestMapping(value = "/admin**", method = RequestMethod.GET)
- public ModelAndView adminPage() {
- ModelAndView model = new ModelAndView();
- model.addObject("title", "Spring Security + Hibernate Example");
- model.addObject("message", "This page is for ROLE_ADMIN only!");
- model.setViewName("admin");
- return model;
- }
- @RequestMapping(value = "/login", method = RequestMethod.GET)
- public ModelAndView login(@RequestParam(value = "error", required = false) String error,
- @RequestParam(value = "logout", required = false) String logout, HttpServletRequest request) {
- ModelAndView model = new ModelAndView();
- if (error != null) {
- model.addObject("error", getErrorMessage(request, "SPRING_SECURITY_LAST_EXCEPTION"));
- }
- if (logout != null) {
- model.addObject("msg", "You've been logged out successfully.");
- }
- model.setViewName("login");
- return model;
- }
- // customize the error message
- private String getErrorMessage(HttpServletRequest request, String key) {
- Exception exception = (Exception) request.getSession().getAttribute(key);
- String error = "";
- if (exception instanceof BadCredentialsException) {
- error = "Invalid username and password!";
- } else if (exception instanceof LockedException) {
- error = exception.getMessage();
- } else {
- error = "Invalid username and password!";
- }
- return error;
- }
- // for 403 access denied page
- @RequestMapping(value = "/403", method = RequestMethod.GET)
- public ModelAndView accesssDenied() {
- ModelAndView model = new ModelAndView();
- // check if user is login
- Authentication auth = SecurityContextHolder.getContext().getAuthentication();
- if (!(auth instanceof AnonymousAuthenticationToken)) {
- UserDetails userDetail = (UserDetails) auth.getPrincipal();
- System.out.println(userDetail);
- model.addObject("username", userDetail.getUsername());
- }
- model.setViewName("403");
- return model;
- }
- /*@Autowired
- UserService userService;
- @Autowired
- TestBl bl;
- @RequestMapping(value = "/login", method = RequestMethod.GET)
- public String login(Model model) {
- return "signin";
- }
- @RequestMapping(value = "/signup", method = RequestMethod.GET)
- public String signup(Model model) {
- return "signup";
- }
- @RequestMapping(value = "/dashboard", method = RequestMethod.GET)
- public String dashboard(Model model) {
- return "blank";
- }*/
- }
- package com.mytravly.travlyweb.service;
- import java.io.Serializable;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import com.mytravly.travlyweb.bean.User;
- import com.mytravly.travlyweb.dao.AbstractHibernateDAO;
- import com.mytravly.travlyweb.dao.IGenericDAO;
- @Service
- @Transactional(propagation = Propagation.MANDATORY)
- public class UserService {
- public UserService() {
- // TODO Auto-generated constructor stub
- }
- AbstractHibernateDAO<User> dao;
- @Autowired
- public void setDao(final AbstractHibernateDAO<User> userDao) {
- dao = userDao;
- dao.setClazz(User.class);
- }
- public List<User> getAll()
- {
- return dao.findAll();
- }
- }
- import java.io.Serializable;
- import java.util.List;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- public abstract class AbstractHibernateDAO<T extends Serializable> {
- private Class<T> clazz;
- @Autowired
- SessionFactory sessionFactory;
- public void setClazz(final Class<T> clazzToSet) {
- clazz = clazzToSet;
- }
- public T getById(final Long id) {
- return (T) getCurrentSession().get(clazz, id);
- }
- public List<T> findAll() {
- return getCurrentSession().createQuery("from " + clazz.getName())
- .list();
- }
- public void save(final T entity) {
- getCurrentSession().persist(entity);
- }
- public void update(final T entity) {
- getCurrentSession().merge(entity);
- }
- public void delete(final T entity) {
- getCurrentSession().delete(entity);
- }
- public void deleteById(final Long entityId) {
- final T entity = getById(entityId);
- delete(entity);
- }
- protected Session getCurrentSession() {
- return sessionFactory.getCurrentSession();
- }
- }
- @Service
- @Transactional(propagation = **Propagation.REQUIRED**)
- public class UserService {
Add Comment
Please, Sign In to add comment