How do I configure Hibernate in Mule?
The Mule config is basically built over the Spring Framework and it supports all the features in Spring Framework. It is quite simple to use the Spring's HibernateTemplate for making database calls inside your Mule Application.
The following steps takes through the configurations involved in using HibernateTemplate inside Mule.
1. Configuring the dependencies in your 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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.mybusiness</groupId> <artifactId>HibernateTutorial</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>HibernateTutorial</name> <url>http://maven.apache.org</url> <repositories> <repository> <releases> <updatePolicy>always</updatePolicy> </releases> <snapshots> <updatePolicy>always</updatePolicy> </snapshots> <id>MuleRepo</id> <name>Mule Repository</name> <url>http://repository.muleforge.org/ </url> </repository> <repository> <releases> <updatePolicy>always</updatePolicy> </releases> <snapshots> <updatePolicy>always</updatePolicy> </snapshots> <id>JBossRepo</id> <name>JBoss Repository</name> <url> https://repository.jboss.org/nexus/content/groups/public/ </url> </repository> <repository> <releases> <updatePolicy>always</updatePolicy> </releases> <snapshots> <updatePolicy>always</updatePolicy> </snapshots> <id>MuleDependencies</id> <name>Mule Dependencies</name> <url>http://dist.codehaus.org/mule/dependencies/maven2/</url> </repository> </repositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Hibernate Jars - START --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.3.2.GA</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.3.2.GA</version> <type>pom</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-annotations</artifactId> <version>3.3.1.GA</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- Hibernate Jars - END --> <!-- Mysql Jars - START --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.14</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- Mysql Jars - END --> <!-- Mule Jars - START --> <dependency> <groupId>org.mule</groupId> <artifactId>mule-core</artifactId> <version>2.2.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.mule.transports</groupId> <artifactId>mule-transport-vm</artifactId> <version>2.2.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.mule.transports</groupId> <artifactId>mule-transport-stdio</artifactId> <version>2.2.1</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- Mule Jars - END --> <!-- Spring Framework Jars - START --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>2.5.6</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>2.5.6</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- Spring Framework Jars - END --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.12.1.GA</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> </project>
2. Configuring the DB Configurations in Spring Framework Style (DBConfigurations.xml).
<?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-2.5.xsd"> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mycollege" /> <property name="username" value="root" /> <property name="password" value="admin" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.connection.pool_size">20</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="mappingResources"> <list> <value>Departments.hbm.xml</value> </list> </property> </bean> </beans>
3. Importing the Database Configurations in your mule-config.xml
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2" xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2" xmlns:spring="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <spring:beans> <spring:import resource="DBConfigurations.xml" /> </spring:beans> </mule>
I am getting following exception , do you have any idea.
ReplyDeletei am trying to use hibernate with mule.
required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:241)
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:470)
... 30 more
Can you please provide more details on the current configurations you have in your project.. Do you have JTA transactions in your project?
ReplyDelete
ReplyDeletethe blog is good and Interactive it is about Mulesoft API Developer it is useful for students and Mulesoft Developers for more updates on Mulesoft mulesoft Online training
I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic..mulesoft 4 training
ReplyDelete
ReplyDeleteThank you for sharing such a great information.Its really nice and informative.hope more posts from you. I also want to share some information recently i have gone through and i had find the one of the best mulesoft 4 self training
Thanks for delivering a good stuff, Explanation is good, Nice Article.
ReplyDeleteBest Mulesoft Training
Mulesoft Online Training in Hyderabad