Advertisement
Guest User

Untitled

a guest
Aug 6th, 2017
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.07 KB | None | 0 0
  1. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
  2. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  3. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  4. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  5. at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  6. at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  7. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  8. at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  9. at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  10. at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:857) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  11. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  12. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
  13. at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
  14. at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
  15. at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
  16. at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
  17. at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]
  18. at com.proba.Userboard.UserboardApplication.main(UserboardApplication.java:11) [classes/:na]
  19. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_121]
  20. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_121]
  21. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_121]
  22. at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_121]
  23. at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-1.5.6.RELEASE.jar:1.5.6.RELEASE]
  24. Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
  25. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
  26. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
  27. at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  28. at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  29. at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  30. at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359) ~[spring-orm-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  31. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  32. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]
  33. ... 21 common frames omitted
  34. Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: role, for columns: [org.hibernate.mapping.Column(users)]
  35. at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:431) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  36. at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:398) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  37. at org.hibernate.mapping.Property.isValid(Property.java:225) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  38. at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:595) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  39. at org.hibernate.mapping.RootClass.validate(RootClass.java:265) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  40. at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  41. at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:443) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
  42. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879) ~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final]
  43. ... 27 common frames omitted
  44.  
  45. <?xml version="1.0" encoding="UTF-8"?>
  46. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  47. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  48. <modelVersion>4.0.0</modelVersion>
  49. <groupId>com.mjamsek</groupId>
  50. <artifactId>Userboard</artifactId>
  51. <version>0.0.1-SNAPSHOT</version>
  52. <packaging>jar</packaging>
  53. <name>Userboard</name>
  54. <description>Userboard</description>
  55. <parent>
  56. <groupId>org.springframework.boot</groupId>
  57. <artifactId>spring-boot-starter-parent</artifactId>
  58. <version>1.5.6.RELEASE</version>
  59. <relativePath/> <!-- lookup parent from repository -->
  60. </parent>
  61. <properties>
  62. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  63. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  64. <java.version>1.8</java.version>
  65. </properties>
  66. <dependencies>
  67. <dependency>
  68. <groupId>org.springframework.boot</groupId>
  69. <artifactId>spring-boot-starter-actuator</artifactId>
  70. </dependency>
  71. <dependency>
  72. <groupId>org.springframework.boot</groupId>
  73. <artifactId>spring-boot-starter-data-jpa</artifactId>
  74. </dependency>
  75. <dependency>
  76. <groupId>org.springframework.boot</groupId>
  77. <artifactId>spring-boot-starter-freemarker</artifactId>
  78. </dependency>
  79. <dependency>
  80. <groupId>org.springframework.boot</groupId>
  81. <artifactId>spring-boot-starter-security</artifactId>
  82. </dependency>
  83. <dependency>
  84. <groupId>org.hsqldb</groupId>
  85. <artifactId>hsqldb</artifactId>
  86. <scope>runtime</scope>
  87. </dependency>
  88. <dependency>
  89. <groupId>org.springframework.boot</groupId>
  90. <artifactId>spring-boot-starter-web</artifactId>
  91. </dependency>
  92. <dependency>
  93. <groupId>org.springframework.boot</groupId>
  94. <artifactId>spring-boot-devtools</artifactId>
  95. <scope>runtime</scope>
  96. </dependency>
  97. <dependency>
  98. <groupId>mysql</groupId>
  99. <artifactId>mysql-connector-java</artifactId>
  100. <scope>runtime</scope>
  101. </dependency>
  102. <dependency>
  103. <groupId>org.springframework.boot</groupId>
  104. <artifactId>spring-boot-starter-test</artifactId>
  105. <scope>test</scope>
  106. </dependency>
  107. <dependency>
  108. <groupId>org.springframework.security</groupId>
  109. <artifactId>spring-security-test</artifactId>
  110. <scope>test</scope>
  111. </dependency>
  112. </dependencies>
  113. <build>
  114. <plugins>
  115. <plugin>
  116. <groupId>org.springframework.boot</groupId>
  117. <artifactId>spring-boot-maven-plugin</artifactId>
  118. </plugin>
  119. </plugins>
  120. </build>
  121. </project>
  122.  
  123. spring.datasource.url=jdbc:mysql://localhost:3306/userboard?useSSL=false
  124. spring.datasource.username=my_username
  125. spring.datasource.password=my_pass
  126. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  127. spring.mvc.view.prefix=/
  128. spring.mvc.view.suffix=.ftl
  129. spring.jpa.show-sql=true
  130. spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
  131. spring.session.store-type=jdbc
  132. spring.session.jdbc.table-name=SESSIONS
  133. spring.messages.basename=validation
  134.  
  135. package com.proba.Userboard.entity;
  136.  
  137. import java.util.Set;
  138. import javax.persistence.Column;
  139. import javax.persistence.Entity;
  140. import javax.persistence.GeneratedValue;
  141. import javax.persistence.GenerationType;
  142. import javax.persistence.Id;
  143. import javax.persistence.JoinColumn;
  144. import javax.persistence.JoinTable;
  145. import javax.persistence.ManyToMany;
  146. import javax.persistence.Table;
  147.  
  148. @Entity
  149. @Table(name="user")
  150. public class User {
  151. @Id
  152. @GeneratedValue(strategy = GenerationType.AUTO)
  153. @Column(name="user_id")
  154. private int id;
  155. @Column(name="username")
  156. private String username;
  157. @Column(name="pass")
  158. private String pass;
  159. @Column(name="name")
  160. private String name;
  161. private String passConfirm;
  162. private Set<Role> roles;
  163.  
  164. public User() {
  165.  
  166. }
  167. public User(String usr, String pas, String nam) {
  168. this.username = usr;
  169. this.pass = pas;
  170. this.name = nam;
  171. }
  172. @Override
  173. public String toString() {
  174. return String.format("{ id : %d, username : %s, pass : %s, name : %s }", this.id, this.username, this.pass, this.name);
  175. }
  176. public int getId() {
  177. return id;
  178. }
  179. public void setId(int id) {
  180. this.id = id;
  181. }
  182. public String getUsername() {
  183. return username;
  184. }
  185. public void setUsername(String username) {
  186. this.username = username;
  187. }
  188. public String getPass() {
  189. return pass;
  190. }
  191. public void setPass(String pass) {
  192. this.pass = pass;
  193. }
  194. public String getName() {
  195. return name;
  196. }
  197. public void setName(String name) {
  198. this.name = name;
  199. }
  200. @ManyToMany
  201. @JoinTable(name="user_role", joinColumns = @JoinColumn(name="user_id"), inverseJoinColumns = @JoinColumn(name="role_id"))
  202. public Set<Role> getRoles() {
  203. return roles;
  204. }
  205. public void setRoles(Set<Role> roles) {
  206. this.roles = roles;
  207. }
  208. public String getPassConfirm() {
  209. return passConfirm;
  210. }
  211. public void setPassConfirm(String passConfirm) {
  212. this.passConfirm = passConfirm;
  213. }
  214. }
  215.  
  216. package com.proba.Userboard.entity;
  217.  
  218. import java.util.Set;
  219. import javax.persistence.Column;
  220. import javax.persistence.Entity;
  221. import javax.persistence.GeneratedValue;
  222. import javax.persistence.GenerationType;
  223. import javax.persistence.Id;
  224. import javax.persistence.ManyToMany;
  225. import javax.persistence.Table;
  226.  
  227. @Entity
  228. @Table(name="role")
  229. public class Role {
  230. @Id
  231. @GeneratedValue(strategy = GenerationType.AUTO)
  232. @Column(name="role")
  233. private int id;
  234. @Column(name="role_name")
  235. private String name;
  236. private Set<User> users;
  237.  
  238. public Role() {
  239.  
  240. }
  241. public Role(String n) {
  242. this.name = n;
  243. }
  244. public int getId() {
  245. return id;
  246. }
  247. public void setId(int id) {
  248. this.id = id;
  249. }
  250. public String getName() {
  251. return name;
  252. }
  253. public void setName(String name) {
  254. this.name = name;
  255. }
  256. @ManyToMany(mappedBy = "roles")
  257. public Set<User> getUsers() {
  258. return users;
  259. }
  260. public void setUsers(Set<User> users) {
  261. this.users = users;
  262. }
  263. @Override
  264. public String toString() {
  265. return String.format("{ id : %s, name: %s }", this.id, this.name);
  266. }
  267. }
  268.  
  269. package com.proba.Userboard.dao;
  270.  
  271. import org.springframework.data.jpa.repository.JpaRepository;
  272. import org.springframework.stereotype.Repository;
  273. import org.springframework.transaction.annotation.Transactional;
  274. import com.proba.Userboard.entity.Role;
  275.  
  276. @Repository
  277. @Transactional
  278. public interface RoleDAO extends JpaRepository<Role, Integer> {
  279.  
  280. }
  281.  
  282. import org.springframework.data.jpa.repository.JpaRepository;
  283. import org.springframework.stereotype.Repository;
  284. import org.springframework.transaction.annotation.Transactional;
  285. import com.proba.Userboard.entity.User;
  286.  
  287. @Repository
  288. @Transactional
  289. public interface UserDAO extends JpaRepository<User, Integer> {
  290. public User findByUsername(String username);
  291. }
  292.  
  293. package com.proba.Userboard.service;
  294.  
  295. import java.util.HashSet;
  296. import org.springframework.beans.factory.annotation.Autowired;
  297. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  298. import com.proba.Userboard.dao.RoleDAO;
  299. import com.proba.Userboard.dao.UserDAO;
  300. import com.proba.Userboard.entity.User;
  301.  
  302. public class UserServiceImpl implements UserService {
  303. @Autowired
  304. private UserDAO userDAO;
  305. @Autowired
  306. private RoleDAO roleDAO;
  307. @Autowired
  308. private BCryptPasswordEncoder bcrypt;
  309.  
  310. @Override
  311. public void save(User user) {
  312.  
  313. user.setPass(bcrypt.encode(user.getPass()));
  314. user.setRoles(new HashSet<>(roleDAO.findAll()));
  315. userDAO.save(user);
  316.  
  317. }
  318. @Override
  319. public User findByUsername(String username) {
  320. return userDAO.findByUsername(username);
  321. }
  322. }
  323.  
  324. package com.proba.Userboard.config;
  325.  
  326. import org.springframework.beans.factory.annotation.Autowired;
  327. import org.springframework.context.annotation.Bean;
  328. import org.springframework.context.annotation.Configuration;
  329. import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
  330. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  331. import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
  332. import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  333. import org.springframework.security.core.userdetails.UserDetailsService;
  334. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  335.  
  336. @Configuration
  337. @EnableWebSecurity
  338. public class SecurityConf extends WebSecurityConfigurerAdapter {
  339. @Autowired
  340. private UserDetailsService userDetailsService;
  341. @Bean
  342. public BCryptPasswordEncoder bcyrpt() {
  343. return new BCryptPasswordEncoder();
  344. }
  345.  
  346. @Override
  347. protected void configure(HttpSecurity http) throws Exception {
  348. http
  349. .authorizeRequests()
  350. .antMatchers("/resource/**", "/registration").permitAll()
  351. .anyRequest().authenticated()
  352. .and()
  353. .formLogin()
  354. .loginPage("/login")
  355. .permitAll()
  356. .and()
  357. .logout()
  358. .permitAll();
  359. }
  360.  
  361. @Autowired
  362. public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
  363. auth.userDetailsService(userDetailsService).passwordEncoder(bcyrpt());
  364. }
  365. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement