4

I am working on Spring MVC project. I am using Hibernate directly. The error No Session found for current thread has occurred in my project. I know that on stackoverflow and on other places on the web this error is very common. But I haven't found working solution to my issue.

I have had unresolved problem with proper configuration of Hibernate Session Factory. I have described it here: Can I use Hibernate Session Factory declared in DispatcherServlet Context instead of hibernate.cfg.xml? But finally I am using hibernate.cfg.xml file and also Hibernate Session Factory defined in DispatcherServlet Context file. I have done some simple operations like persisting classes in database. And everything was OK.

At this moment my project has a lot of in common with Spring MVC Hibernate. I have added some annotations to my classes and I have created some new services classes.

My ServletDispatcher Context file contains this definitions:

<annotation-driven />
<context:annotation-config />
<context:component-scan base-package="finances.webapp" />

<!-- Data source -->
<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <beans:property name="url" value="jdbc:mysql://localhost/finances" />
    <beans:property name="username" value="root" />
    <beans:property name="password" value="root" />
</beans:bean>
<!-- Data source end -->

<!-- Hibernate session factory -->
<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <beans:property name="dataSource">
          <beans:ref bean="dataSource" />
    </beans:property>
    <beans:property name="configLocation" value="classpath:hibernate.cfg.xml" />
</beans:bean>
<!-- Hibernate session factory end -->

<beans:bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <beans:property name="sessionFactory" ref="sessionFactory" />
</beans:bean>

<beans:bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <beans:property name="transactionManager" ref="transactionManager" />
    <beans:property name="transactionAttributes">
        <beans:props>
            <beans:prop key="save">PROPAGATION_REQUIRED</beans:prop>
        </beans:props>
    </beans:property>
</beans:bean>

In my pom.xml file I have only these two dependencies according to ORM:

<!-- Hibernate -->
<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-entitymanager</artifactId>
   <version>4.1.4.Final</version>
</dependency>

<!-- EJB -->
<dependency>
   <groupId>javax.ejb</groupId>
   <artifactId>ejb-api</artifactId>
   <version>3.0</version>
   <scope>provided</scope>
</dependency>

Maybe problem is here? But I haven't any problem with missing packages earlier.

This is code from my controller:

UsersEntity user2 = new UsersEntity("qwerty", "qwerty", true);
usersService.addUser(user2);

The problem No Session found for current thread has occured during invoking addUser() method.

My DAO class:

@Repository
public class UsersHome {

    @Autowired
    private SessionFactory sessionFactory;    

    public void persist(UsersEntity transientInstance) {
        sessionFactory.getCurrentSession().persist(transientInstance);
    }
}

My service:

@Service
public class UsersService {

    @Autowired
    private UsersHome usersHome;

    @Transactional(propagation = Propagation.REQUIRED)
    public void addUser(UsersEntity user) {
        usersHome.persist(user);
    }
}

This code has stopped working when I have change method body in UsersHome class. Previously I have been starting session before my action and ending session after my action. But using annotations and transactions it should work? Please give me some suggestions.

EDIT

<hibernate-configuration>
    <session-factory>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
        <property name="connection.url">jdbc:mysql://localhost/finances</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <mapping class="finances.webapp.entities.AuthoritiesEntity"/>
        <mapping class="finances.webapp.entities.ExpensesEntity"/>
        <mapping class="finances.webapp.entities.ExpensesCategoriesEntity"/>
        <mapping class="finances.webapp.entities.ExpensesObjectsEntity"/>
        <mapping class="finances.webapp.entities.IncomesEntity"/>
        <mapping class="finances.webapp.entities.UsersEntity"/>
    </session-factory>
</hibernate-configuration>

EDIT #2

org.springframework.beans.factory.BeanCreationException: Error creating bean with 
name 'usersService': Injection of autowired dependencies failed; nested exception 
is org.springframework.beans.factory.BeanCreationException: Could not autowire 
field: private finances.webapp.dao.UsersHome 
finances.webapp.services.UsersService.usersHome;
nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'usersHome': Injection of autowired dependencies 
failed; nested exception is org.springframework.beans.factory.BeanCreationException:
Could not autowire field: private org.hibernate.SessionFactory
finances.webapp.dao.UsersHome.sessionFactory; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'sessionFactory' defined in ServletContext resource 
[/WEB-INF/spring/appServlet/servlet-context.xml]: Invocation of init method 
failed; nested exception is java.lang.NoClassDefFoundError: 
org/hibernate/cfg/EJB3DTDEntityResolver

EDIT #3

My root-context.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="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.0.xsd">

<!-- Root Context: defines shared resources visible to all other web components -->

</beans>

And my whole spring-config.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:beans="http://www.springframework.org/schema/beans"
         xmlns:context="http://www.springframework.org/schema/context"
         xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<context:annotation-config />
<context:component-scan base-package="finances.webapp" />

<!-- Handles HTTP GET requests for resources by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />

<!--<beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">-->
    <!--<beans:property name="definitions">-->
        <!--<beans:list>-->
            <!--<beans:value>/WEB-INF/tiles-definitions.xml</beans:value>-->
        <!--</beans:list>-->
    <!--</beans:property>-->
<!--</beans:bean>-->

<!--<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">-->
    <!--<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />-->
<!--</beans:bean>-->

<!-- Data source -->
<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <beans:property name="url" value="jdbc:mysql://localhost/finances" />
    <beans:property name="username" value="root" />
    <beans:property name="password" value="root" />
</beans:bean>
<!-- Data source end -->

<!-- Hibernate session factory -->
<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <beans:property name="dataSource" ref="dataSource" />
    <beans:property name="configLocation" value="classpath:hibernate.cfg.xml" />
</beans:bean>
<!-- Hibernate session factory end -->

<beans:bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <beans:property name="sessionFactory" ref="sessionFactory" />
</beans:bean>

<beans:bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <beans:property name="transactionManager" ref="transactionManager" />
    <beans:property name="transactionAttributes">
        <beans:props>
            <beans:prop key="save">PROPAGATION_REQUIRED</beans:prop>
            <beans:prop key="persist">PROPAGATION_REQUIRED</beans:prop>
        </beans:props>
    </beans:property>
</beans:bean>

</beans:beans>
Community
  • 1
  • 1
woyaru
  • 5,544
  • 13
  • 54
  • 92

1 Answers1

2

Try to remove "transactionInterceptor", you already have @Transaction attribute set and also have tag <annotation-driven/>. Or add to transactionInterceptor key for persist() method

<beans:prop key="persist">PROPAGATION_REQUIRED</beans:prop>

Maybe it help.

EDIT: I recreated your configuration and it works.

this it spring config:

<?xml  version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/jdbc
        http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
        ">

    <context:annotation-config />
    <context:component-scan base-package="finances.webapp" />


    <jdbc:embedded-database id="dataSource" type="H2"/>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
    </bean>

    <tx:annotation-driven />

    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

</beans>

this is hibernate config:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="dialect">org.hibernate.dialect.H2Dialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
        <mapping class="finances.webapp.bean.UsersEntity"/>
    </session-factory>
</hibernate-configuration>

dependency in pom.xml

<properties>
        <org.springframework.version>3.1.0.RELEASE</org.springframework.version>
        <org.hibernate.version>4.1.4.Final</org.hibernate.version>
    </properties>
  <dependencies>
      <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-entitymanager</artifactId>
          <version>${org.hibernate.version}</version>
      </dependency>
      <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-core</artifactId>
          <version>${org.hibernate.version}</version>
      </dependency>

      <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-annotations</artifactId>
          <version>3.5.6-Final</version>
      </dependency>

      <dependency>
          <groupId>javax.ejb</groupId>
          <artifactId>ejb-api</artifactId>
          <version>3.0</version>
          <scope>provided</scope>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-orm</artifactId>
          <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>${org.springframework.version}</version>
      </dependency>
      <dependency>
          <groupId>cglib</groupId>
          <artifactId>cglib</artifactId>
          <version>2.2.2</version>
      </dependency>


      <!--for test only -->
      <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
          <version>1.3.168</version>
      </dependency>

      <dependency>
          <groupId>org.testng</groupId>
          <artifactId>testng</artifactId>
          <version>6.1.1</version>
          <scope>test</scope>
      </dependency>

unit-test:

public class TestPersist {
    @org.testng.annotations.Test
    public void testPersistence() throws Exception {

        ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-context.xml");
        Assert.assertNotNull(ctx);

        UsersService userService = ctx.getBean(UsersService.class);

        Assert.assertNotNull(userService);
        UsersEntity user2 = new UsersEntity();
        user2.setEnable(true);
        user2.setLogin("querty");
        user2.setName("user2");

        userService.addUser(user2);

    }
}

and unit-test output:

Sep 8, 2012 2:55:37 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5d3ad33d: startup date [Sat Sep 08 14:55:37 MSK 2012]; root of context hierarchy
Sep 8, 2012 2:55:37 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [spring-context.xml]
Sep 8, 2012 2:55:37 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6cb32ed4: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,usersHome,usersService,dataSource,sessionFactory,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,transactionManager,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy
Sep 8, 2012 2:55:37 PM org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory initDatabase
INFO: Creating embedded database 'dataSource'
Sep 8, 2012 2:55:38 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
Sep 8, 2012 2:55:38 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.4.Final}
Sep 8, 2012 2:55:38 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Sep 8, 2012 2:55:38 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Sep 8, 2012 2:55:38 PM org.hibernate.cfg.Configuration configure
INFO: HHH000044: Configuring from URL: file:/home/gr/dev/target/classes/hibernate.cfg.xml
Sep 8, 2012 2:55:38 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
Sep 8, 2012 2:55:38 PM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
Sep 8, 2012 2:55:38 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Sep 8, 2012 2:55:38 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
Sep 8, 2012 2:55:38 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
Sep 8, 2012 2:55:38 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
Sep 8, 2012 2:55:38 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000228: Running hbm2ddl schema update
Sep 8, 2012 2:55:38 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000102: Fetching database metadata
Sep 8, 2012 2:55:38 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000396: Updating schema
Sep 8, 2012 2:55:38 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: UsersEntity
Sep 8, 2012 2:55:38 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: UsersEntity
Sep 8, 2012 2:55:39 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
Sep 8, 2012 2:55:39 PM org.springframework.orm.hibernate4.HibernateTransactionManager afterPropertiesSet
INFO: Using DataSource [org.springframework.jdbc.datasource.SimpleDriverDataSource@79ef3ccd] of Hibernate SessionFactory for HibernateTransactionManager
Hibernate: insert into UsersEntity (id, enable, login, name) values (null, ?, ?, ?)
RemoteTestNG finishing: 2868 ms
user1516873
  • 5,060
  • 2
  • 37
  • 56
  • Thank you for answer. I have checked my configuration without `transactionInterceptor` before I have written my question here so it isn't solution. I am going to check adding key for `persist()` tomorrow. I will write about the result. – woyaru Sep 06 '12 at 20:34
  • I have added key for `persist()` method. The error is the same. Do you have another suggestions? – woyaru Sep 07 '12 at 06:10
  • 1
    Actually configuration looks fine for me. I'll try to recreate your configuration on my local box and find working colution. – user1516873 Sep 07 '12 at 06:33
  • Thanks a million for your help! I'll be waiting for your answer. – woyaru Sep 07 '12 at 07:00
  • maybe the problem is related to maven dependencies. I have only one dependency for Hibernate. I will check that on Monday. Thanks a milion! – woyaru Sep 09 '12 at 12:38
  • but don't forget, you have container (tomcat? jetty? jboss?) and it has its own jars. – user1516873 Sep 10 '12 at 06:06
  • I am using JBoss. However I can add only `hibernate-core` to my configuration. When I added `hibernate-annotation` the new errors have occured. But without `hibernate-annotation` my issue is still the same. So I have really got stuck. – woyaru Sep 10 '12 at 06:22
  • What error occured when you added hibernate-annotation? This jar isn't nessesarry, if you are uses javax.persistence.* annotations, but any little complicated mapping will required this jar. Also Jboss has his own bundled hibernate, maybe it conflicts? By the way Jboss 7.1.1 contains Hibernate 4.0.1-Final. – user1516873 Sep 10 '12 at 06:35
  • I have edited my question and I have added root cause according to new issue which has occured when I have added `hibernate-annotations` dependency. – woyaru Sep 10 '12 at 06:50
  • it's easy. This exception occures when you have different hibernate version. I may suggest temporally swith to use in application the same hibernate version as in Jboss. Second variant is not deploy hibernate jars with application. – user1516873 Sep 10 '12 at 07:19
  • But is this solution only to this new issue? I am using JBoss 7.1.1 according to this https://docs.jboss.org/author/display/AS71/Maven+POM+Versions+Checklist I have changed my `hibernate-core` and `hibernate-annotations` dependencies version to `4.0.1.FINAL`. The error is the same. I can't not deploy hibernate jars with application because my IDE can't find classes in this way. – woyaru Sep 10 '12 at 07:42
  • Ok, lets try other way. Try to create unit-test, similar to my and run it. If error still here, problem in your spring configuration, if unit-test will run witout error, problem somewhere in deployment. – user1516873 Sep 10 '12 at 07:51
  • Hmm something is wrong. This issue has occured during testing: `org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [root-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [servlet-context.xml] cannot be opened because it does not exist` I have `servlet-context.xml` file in `main/webapp/WEB-INF/spring/appServlet/`. And before at the begining when I was using `SessionFactory` everything with Spring configuration was OK. – woyaru Sep 10 '12 at 08:18
  • copy main/webapp/WEB-INF/spring/appServlet/servlet-context.xml to test/resources/servlet-context.xml. When context for unit-tests will creating, ClassPathXmlApplicationContext will pick it up from there. – user1516873 Sep 10 '12 at 08:27
  • And of course ctx = new ClassPathXmlApplicationContext("root-context.xml; servlet-context.xml"); – user1516873 Sep 10 '12 at 08:28
  • I have copied `servlet-context.xml` to `/test/resources/` and I have changed arguments to `("root-context.xml; servlet-context.xml")` but I still have `parsing XML document from class path resource [root-context.xml; servlet-context.xml];`. – woyaru Sep 10 '12 at 08:35
  • Without `root-context.xml` I have problem with `tilesConfigurer` in test. I am reading that using Tiles during test is very problematic. – woyaru Sep 10 '12 at 08:43
  • I have commented `TilesConfigurer` in copied `servlet-context.xml` and finally the error `org.hibernate.HibernateException: No Session found for current thread` has occured. – woyaru Sep 10 '12 at 08:45
  • I have added this files to my question. – woyaru Sep 10 '12 at 08:59
  • 1
    default namespace in your context-xml is xmlns="http://www.springframework.org/schema/mvc". Add tx namespace xmlns:tx="http://www.springframework.org/schema/tx" and change line to – user1516873 Sep 10 '12 at 09:40
  • I have changed that and this issue has occurred during test: `org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 14 in XML document from class path resource [servlet-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven'.` – woyaru Sep 10 '12 at 11:19
  • xsi:schemaLocation should include location of tx namespace definition, like xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> SAX parser should know there it can get xsd schema, and it looks in schemaLocation attribute. I think you know this bit. – user1516873 Sep 10 '12 at 11:26
  • OK, sorry, I have forgotten to add `schemaLocation`. Sorry for copy-paste. Test has passed. This has occured: `Hibernate: insert into finances.USERS (ENABLED, PASSWORD, USERNAME) values (?, ?, ?)`. So it is success I suppose. But I am getting this when I am starting my app on JBoss: `[org.springframework.web.servlet.PageNotFound] (http--127.0.0.1-8080-1) No mapping found for HTTP request with URI [/finances/] in DispatcherServlet with name 'appServlet'` So I have still problem with configuration. Thanks for help with my hibernate session issue problem. – woyaru Sep 10 '12 at 11:46
  • If you have any idea please look here: http://stackoverflow.com/q/12351777/845220 Thanks a milion once more. – woyaru Sep 10 '12 at 12:53