Review
In the previous section, we have focused on the presentation layer and discussed jqGrid. In this section, we will focus on the configuration files, in particular XML files.Table of Contents
Part 1: Introduction and Functional SpecsPart 2: Java classes
Part 3: HTML and jqGrid
Part 4: XML configuration
Part 5: Running the Application
Configuration
Database properties
Remember we'll use MySQL as our application's database. However, it's also possible to use a different database provider. Therefore, to make switching database simpler, we've externalized our database configuration within a properties file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# database properties | |
app.jdbc.driverClassName=com.mysql.jdbc.Driver | |
app.jdbc.url=jdbc\:mysql\://localhost/spring_jqgrid_tutorial | |
app.jdbc.username=root | |
app.jdbc.password= |
Application Context
Below is a typical application context file for enabling Spring MVC support.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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:p="http://www.springframework.org/schema/p" | |
xmlns:mvc="http://www.springframework.org/schema/mvc" | |
xsi:schemaLocation="http://www.springframework.org/schema/beans | |
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd | |
http://www.springframework.org/schema/context | |
http://www.springframework.org/schema/context/spring-context-3.1.xsd | |
http://www.springframework.org/schema/mvc | |
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> | |
<context:property-placeholder properties-ref="deployProperties" /> | |
<!-- Activates various annotations to be detected in bean classes --> | |
<context:annotation-config /> | |
<!-- Scans the classpath for annotated components that will be auto-registered as Spring beans. | |
For example @Controller and @Service. Make sure to set the correct base-package --> | |
<context:component-scan base-package="org.krams" /> | |
<!-- Configures the annotation-driven Spring MVC Controller programming model. | |
Note that, with Spring 3.0, this tag works in Servlet MVC only! --> | |
<mvc:annotation-driven /> | |
<mvc:resources mapping="/resources/**" location="/resources/" /> | |
<!-- Imports logging configuration --> | |
<import resource="trace-context.xml"/> | |
<!-- Imports datasource configuration --> | |
<import resource="spring-data.xml"/> | |
<bean id="deployProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean" | |
p:location="/WEB-INF/spring.properties" /> | |
</beans> |
Spring Data
In conjuction with the spring.properties file, we have to declare the actual datasource. Notice we're using JPA and Spring Data JPA support.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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:p="http://www.springframework.org/schema/p" | |
xmlns:tx="http://www.springframework.org/schema/tx" | |
xmlns:context="http://www.springframework.org/schema/context" | |
xmlns:jdbc="http://www.springframework.org/schema/jdbc" | |
xmlns:jpa="http://www.springframework.org/schema/data/jpa" | |
xmlns:util="http://www.springframework.org/schema/util" | |
xsi:schemaLocation=" | |
http://www.springframework.org/schema/beans | |
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd | |
http://www.springframework.org/schema/tx | |
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd | |
http://www.springframework.org/schema/context | |
http://www.springframework.org/schema/context/spring-context-3.1.xsd | |
http://www.springframework.org/schema/jdbc | |
http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd | |
http://www.springframework.org/schema/data/jpa | |
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd | |
http://www.springframework.org/schema/util | |
http://www.springframework.org/schema/util/spring-util-3.1.xsd"> | |
<context:property-placeholder properties-ref="deployProperties" /> | |
<tx:annotation-driven transaction-manager="transactionManager" /> | |
<!-- Activate Spring Data JPA repository support --> | |
<jpa:repositories base-package="org.krams.repository" /> | |
<!-- Declare a datasource that has pooling capabilities--> | |
<bean id="jpaDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" | |
destroy-method="close" | |
p:driverClass="${app.jdbc.driverClassName}" | |
p:jdbcUrl="${app.jdbc.url}" | |
p:user="${app.jdbc.username}" | |
p:password="${app.jdbc.password}" | |
p:acquireIncrement="5" | |
p:idleConnectionTestPeriod="60" | |
p:maxPoolSize="100" | |
p:maxStatements="50" | |
p:minPoolSize="10" /> | |
<!-- Declare a JPA entityManagerFactory --> | |
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" | |
p:persistenceXmlLocation="classpath*:META-INF/persistence.xml" | |
p:persistenceUnitName="hibernatePersistenceUnit" | |
p:dataSource-ref="jpaDataSource" | |
p:jpaVendorAdapter-ref="hibernateVendor"/> | |
<!-- Specify our ORM vendor --> | |
<bean id="hibernateVendor" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" | |
p:showSql="false"/> | |
<!-- Declare a transaction manager--> | |
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" | |
p:entityManagerFactory-ref="entityManagerFactory"/> | |
</beans> |
Next
In the next section, we will build and run the application using Maven, and show how to import the project in Eclipse. Click here to proceed.
Share the joy:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |


Hello Krams,
ReplyDeletei see this warning when i try to deploy the war in the application server. How to get rid of this?
<[Enhance] An exception was thrown while attempting to perform class file transformation on "com.test.domain.User":
org.apache.openjpa.util.GeneralException: org.xml.sax.SAXException: zip:C:/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/WittApp/i4ptas/war/WEB-INF/lib/_wl_cls_gen.jar!/META-INF/orm.xml [Location: Line: 2, C: 252]: org.xml.sax.SAXParseException: cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'entity-mappings' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'.
at org.apache.openjpa.persistence.PersistenceMetaDataFactory.parseXML(PersistenceMetaDataFactory.java:264)
at org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:199)
at org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:474)
at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:294)
at org.apache.openjpa.enhance.PCEnhancer.(PCEnhancer.java:248)
Truncated. see log file for complete stacktrace
Caused By: java.io.IOException: org.xml.sax.SAXException: zip:C:/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/WittApp/i4ptas/war/WEB-INF/lib/_wl_cls_gen.jar!/META-INF/orm.xml [Location: Line: 2, C: 252]: org.xml.sax.SAXParseException: cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'entity-mappings' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'.
@Anonymous, what application server are you using to deploy the application? I have tested this project with Tomcat and Jetty. The issue could be related with your application server.
ReplyDeleteHi krams,
ReplyDeletewe are not able to run this project , we have the following issue and unable to access from browser also.
our error is at http://pastebin.com/qekgdYPV
I am running on Websphere 8........... getting below error
ReplyDeleteNo matching bean of type [com.github.markserrano.jsonquery.jpa.samples.repository.IEmployeeRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}