light admin configuration with spring

140 views
Skip to first unread message

Dhyanandra Singh

unread,
Aug 11, 2016, 6:29:43 AM8/11/16
to Light Admin Group

I wanted to use light admin with spring boot.
My project is working fine intially but when

when i am adding dependency into pom.xml

<lightadmin.version>1.2.0.RC1</lightadmin.version>
dependency>
   
<groupId>org.lightadmin</groupId>
   
<artifactId>lightadmin</artifactId>
   
<version>${lightadmin.version}</version>
</dependency>


it will throw error :




org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/boot/configur
ation
/HibernateConfiguration.class]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError
        at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) ~[spring-b
eans
-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-bean
s
-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-
4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEA
SE
]
        at org
.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.2.RELE
ASE
.jar:4.3.2.RELEASE]
        at org
.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE
]
        at org
.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076) ~[spring-context-4.3.2.RELEASE.jar:4.3.
2.RELEASE]
        at org
.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851) ~[spring-context
-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.3.2.RELEASE.jar:4.3.2
.RELEASE]
        at org
.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.0.RELEASE.
jar
:1.4.0.RELEASE]
        at org
.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
        at org
.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
        at org
.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
        at org
.springframework.boot.SpringApplication.run(SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
        at org
.springframework.boot.SpringApplication.run(SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar:1.4.0.RELEASE]
        at
AppInitializer.main(AppInitializer.java:77) [classes/:?]
        at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
        at sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_45]
        at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
        at java
.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
        at org
.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-1.4.0.RELEASE.jar:1.4.0.RELEASE]
Caused by: java.lang.AbstractMethodError
        at org
.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:276) ~[hibernate-core-5.2.2.Final.jar:5.2.2.Final]
        at org
.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:490) ~[hibernate-core-5.2.2.Final.jar:5.2.2.Final]
        at org
.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:878) ~[hibernate-core-5.2.2.Final.jar:5.2
.2.Final]
        at org
.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.j
ava
:60) ~[spring-orm-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:338)
 
~[spring-orm-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:373) ~[spring-orm
-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:362) ~[spring-orm-4.3.2.RELEAS
E
.jar:4.3.2.RELEASE]
        at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[sprin
g
-beans-4.3.2.RELEASE.jar:4.3.2.RELEASE]
        at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-b
eans
-4.3.2.RELEASE.jar:4.3.2.RELEASE]
       
... 21 more

other configuration files:

pom.xml
-------
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
       
<modelVersion>4.0.0</modelVersion>
       
<groupId>com.boot</groupId>
       
<artifactId>bootExample</artifactId>
       
<packaging>war</packaging>
       
<version>0.0.1-SNAPSHOT</version>
       
<name>bootExample Maven Webapp</name>
       
<url>http://maven.apache.org</url>

       
<parent>
           
<groupId>org.springframework.boot</groupId>
           
<artifactId>spring-boot-starter-parent</artifactId>
           
<version>1.4.0.RELEASE</version>
       
</parent>

       
<properties>
           
<spring-boot.version>1.4.0.RELEASE</spring-boot.version>
           
<springframework.version>4.3.1.RELEASE</springframework.version>
           
<hibernate.version>5.2.2.Final</hibernate.version>
           
<mysql.connector.version>5.1.31</mysql.connector.version>
           
<java.version>1.8</java.version>
           
<maven.compiler.source>1.7</maven.compiler.source>
           
<maven.compiler.target>1.7</maven.compiler.target>

           
<tomcat.version>8.0.15</tomcat.version>

           
<lightadmin.version>1.2.0.RC1</lightadmin.version>
       
</properties>

       
<dependencyManagement>
           
<dependencies>
               
<dependency>
                   
<groupId>org.springframework.boot</groupId>
                   
<artifactId>spring-boot-dependencies</artifactId>
                   
<version>${spring-boot.version}</version>
                   
<type>pom</type>
                   
<scope>import</scope>
               
</dependency>
               
<dependency>
                   
<groupId>org.springframework</groupId>
                   
<artifactId>spring-framework-bom</artifactId>
                   
<version>${springframework.version}</version>
                   
<scope>import</scope>
                   
<type>pom</type>
               
</dependency>

           
</dependencies>
       
</dependencyManagement>


       
<dependencies>
             
<dependency>
               
<groupId>org.lightadmin</groupId>
               
<artifactId>lightadmin</artifactId>
               
<version>${lightadmin.version}</version>
           
</dependency>

           
<!-- <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
            </dependency>

            for JPA, use hibernate-entitymanager instead of hibernate-core
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>${hibernate.version}</version>
            </dependency> -->



           
<!-- Spring boot -->
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter</artifactId>
               
<exclusions>
                   
<!-- we want to rely on external log4j2 -->
                   
<exclusion>
                       
<groupId>org.springframework.boot</groupId>
                       
<artifactId>spring-boot-starter-logging</artifactId>
                   
</exclusion>
               
</exclusions>
           
</dependency>
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter-ws</artifactId>
           
</dependency>
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter-log4j2</artifactId>
           
</dependency>
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter-web</artifactId>
           
</dependency>
           
<!-- JPA -->
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter-data-jpa</artifactId>
           
</dependency>
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter-test</artifactId>
               
<scope>test</scope>
           
</dependency>
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-devtools</artifactId>
               
<optional>true</optional>
           
</dependency>
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter-actuator</artifactId>
           
</dependency>
           
<dependency>
               
<groupId>org.springframework.boot</groupId>
               
<artifactId>spring-boot-starter-tomcat</artifactId>
               
<!-- Please change scope to "provided" for deploying as a web module to
                    servlet container -->

               
<scope>compile</scope>
           
</dependency>
           
<dependency>
               
<groupId>org.apache.tomcat.embed</groupId>
               
<artifactId>tomcat-embed-jasper</artifactId>
               
<!-- Please change scope to "provided" for deploying as a web module to
                    servlet container -->

               
<scope>compile</scope>
           
</dependency>
           
<dependency>
               
<groupId>mysql</groupId>
               
<artifactId>mysql-connector-java</artifactId>
           
</dependency>
       
</dependencies>

       
<build>
           
<plugins>
               
<plugin>
                   
<groupId>org.springframework.boot</groupId>
                   
<artifactId>spring-boot-maven-plugin</artifactId>
                   
<configuration>
                       
<jvmArguments>
                            -Xdebug
                            -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
                       
</jvmArguments>
                   
</configuration>
               
</plugin>
           
</plugins>
       
</build>

       
<!-- <repositories>
            <repository>
                <id>lightadmin-nexus-releases</id>
                <url>http://lightadmin.org/nexus/content/repositories/releases</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
            </repository>
            <repository>
                <id>lightadmin-nexus-snapshots</id>
                <url>http://lightadmin.org/nexus/content/repositories/snapshots</url>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
        </repositories> -->


   
</project>



  AppInitializer.java --------------------
    @SpringBootApplication
   
@ComponentScan({ "com.boot.configuration" })
   
@Order(HIGHEST_PRECEDENCE)
   
public class AppInitializer{

       
public static void main(String[] args) throws Exception{
           
ApplicationContext ctx = SpringApplication.run(AppInitializer.class, args);

           
System.out.println("Let's work with Boot:");
       
}
   
}

AppConfig.java ----------------

   
@Configuration
   
@EnableWebMvc
   
@ComponentScan(basePackages = "com.boot")
   
public class AppConfig extends WebMvcConfigurerAdapter {

       
@Bean
       
public ViewResolver viewResolver() {
           
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
            viewResolver
.setViewClass(JstlView.class);
            viewResolver
.setPrefix("/WEB-INF/views/");
            viewResolver
.setSuffix(".jsp");
           
return viewResolver;
       
}

       
@Override
       
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
            registry
.addResourceHandler("/resources/**")
           
.addResourceLocations("/resources/theme1/");
       
}



       
@Override
       
public void addCorsMappings(CorsRegistry registry) {
            registry
.addMapping("/**");
       
}

       
@Override
       
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
            configurer
.enable();
       
}
   
}





 HibernateConfiguration.java ---------------------------
@Configuration
   
@EnableTransactionManagement
   
@PropertySource(value = { "classpath:application.properties" })
   
public class HibernateConfiguration {

       
@Autowired
       
private Environment environment;

       
@Bean
       
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
           
LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
           entityManagerFactory
.setDataSource(dataSource());
           entityManagerFactory
.setPackagesToScan(new String[] {"com.boot.model"});

           
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
           entityManagerFactory
.setJpaVendorAdapter(vendorAdapter);
           entityManagerFactory
.setJpaProperties(hibernateProperties());

           
return entityManagerFactory;
       
}

       
@Bean
       
public DataSource dataSource() {
           
DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource
.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
            dataSource
.setUrl(environment.getRequiredProperty("jdbc.url"));
            dataSource
.setUsername(environment.getRequiredProperty("jdbc.username"));
            dataSource
.setPassword(environment.getRequiredProperty("jdbc.password"));
           
return dataSource;
       
}

       
private Properties hibernateProperties() {
           
Properties properties = new Properties();
            properties
.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
            properties
.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
            properties
.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
            properties
.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hibernate.hbm2ddl.auto"));

           
return properties;        
       
}

       
@Bean
       
public PlatformTransactionManager transactionManager(EntityManagerFactory emf){
           
JpaTransactionManager transactionManager = new JpaTransactionManager();
           transactionManager
.setEntityManagerFactory(emf);

           
return transactionManager;
       
}

       
@Bean
       
public PersistenceExceptionTranslationPostProcessor exceptionTranslation(){
           
return new PersistenceExceptionTranslationPostProcessor();
       
}


   
}





Reply all
Reply to author
Forward
0 new messages