i'm working on a maven project with spring-framework and hibernate. I have these two method:
public void loadXml() throws IOException, URISyntaxException {
String filePathXml ="spring_hibernate_files/spring-hibernate4.xml";
File file = Resources.getResourceFile(filePathXml);
if(file.exists()){
ApplicationContext contextClassPath = new ClassPathXmlApplicationContext(file.getAbsolutePath());
}
}
public static File getResourceFile(String name){
return new File(Resources.class.getClassLoader().getResource(name).getFile());
}
This is the spring-hibernate4.xml, located in resources/spring_hibernate_files/spring-hibernate4.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://ift.tt/GArMu6" xmlns:xsi="http://ift.tt/ra1lAU" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://ift.tt/GArMu6 http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<!-- Import database.properties file -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>spring_hibernate_files/database.properties</value>
</property>
</bean>
<!-- We use Apache Commons DBCP for a data source with connection pooling capability: -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- The following declaration is for automatic transaction support for the SessionFactory: -->
<tx:annotation-driven />
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory" />
</bean>
<bean id="hibernate4AnnotatedSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>object.model.Website</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property></bean>
<!-- Set the Hibernate for all Implementation classes -->
<bean id="WebsiteDao" class="object.impl.WebsiteDaoImpl"><property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory"/></bean>
When i arrived to run the line of code:
ApplicationContext contextClassPath = new ClassPathXmlApplicationContext(file.getAbsolutePath());
(NOTE:I've tried with all kind of analog string for match the file), I have the following exception, i've tried and search on the web with similar problema but now i'm stuck. This is the exception:
Exception in thread "main" java.lang.reflect.InvocationTargetException 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:606) at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:130) Caused by: java.lang.NoSuchMethodError: org.springframework.util.Assert.noNullElements([Ljava/lang/Object;Ljava/lang/String;)V at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.setConfigLocations(AbstractRefreshableConfigApplicationContext.java:77) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:137) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83) at spring.Test_Spring_Hibernate.loadXml(Test_Spring_Hibernate.java:53) at spring.Test_Spring_Hibernate.main(Test_Spring_Hibernate.java:37) ... 5 more
ty in advance.
UPDATE 1 Already tried with:
ApplicationContext contextClassPath = new FileSystemXmlApplicationContext("spring_hibernate_files/spring-hibernate4v2.xml");
But he's launch the same exception. I put here the mvn:dependency tree:
If you need to see the full code the project is here at link to project the class of the test is and the pom file is link to pom ty in advance for any help.
Aucun commentaire:
Enregistrer un commentaire