Direkt zum Hauptbereich

Spring Framework on OpenShift: persistence.xml and EntityManager Configuration on Wildfly 10 and MySQL

Running an Web Application with Spring Framework 4.2.x with Spring-Data-JPA and MySQL on OpenShift the RedHat Cloud is good with Wildfly10.

But how to configure the MySQL Database for Spring-Data-JPA?

Spring-Data-JPA with Wildfly10 and MySQL on Openshift 

First Step: edit persistence.xml. Here is an Example:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="mySimpleWorkListPU" transaction-type="JTA"><jta-data-source>java:jboss/datasources/MySQLDS</jta-data-source>
<class>org.woehlke.simpleworklist.entities.ActionItem</class>
<class>org.woehlke.simpleworklist.entities.Category</class>
<class>org.woehlke.simpleworklist.entities.TimelineDay</class>
<class>org.woehlke.simpleworklist.entities.TimelineMonth</class>
<class>org.woehlke.simpleworklist.entities.TimelineYear</class>
<class>org.woehlke.simpleworklist.entities.RegistrationProcess</class>
<class>org.woehlke.simpleworklist.entities.UserAccount</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<!-- Bind entity manager factory to JNDI at java:jboss/myEntityManagerFactory -->
<property name="jboss.entity.manager.factory.jndi.name"
  value="java:jboss/mySimpleWorkListEntityManagerFactory" /> 
<property name="jboss.entity.manager.jndi.name"
  value="java:/mySimpleWorkListEntityManager"/>
</properties>
</persistence-unit>
</persistence>


set <jta-data-source>java:jboss/datasources/MySQLDS</jta-data-source>

and the Properties to:

<property name="jboss.entity.manager.factory.jndi.name"
 value="java:jboss/mySimpleWorkListEntityManagerFactory" /> 
<property name="jboss.entity.manager.jndi.name" value="java:/mySimpleWorkListEntityManager"/>

Second Step: Edit the Spring Application Context (XML):

<jpa:repositories base-package="org.woehlke.simpleworklist" />

<!-- Look up the database in JNDI -->
<jee:jndi-lookup
jndi-name="java:jboss/datasources/ExampleDS"
id="dataSource"expected-type="javax.sql.DataSource" /> 

<!-- Look up the container deployed EntityManager -->
<jee:jndi-lookup
jndi-name="java:/mySimpleWorkListEntityManager"
id="entityManager"
expected-type="javax.persistence.EntityManager" />

<!-- Look up the container deployed EntityManager -->
<jee:jndi-lookup
jndi-name="java:jboss/mySimpleWorkListEntityManagerFactory"
id="entityManagerFactory"
expected-type="javax.persistence.EntityManagerFactory" /> 

<!-- JPA Configuration -->
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /> <!-- Use JTA transactions with the container-deployed EntityManager -->
<tx:jta-transaction-manager /> 

<!-- Transactions -->
<tx:annotation-driven transaction-manager="transactionManager" />


The Beans dataSource, entityManager and entityManagerFactory are configured to be fetched via JNDI.

Webapp URL: http://jbosswildfly-simpleworklist.rhcloud.com/

Github Source-Code: https://github.com/phasenraum2010/simpleworklist

JPA on Slideshare: http://de.slideshare.net/Thomas_Woehlke/jpa-java-persistence-api-4557033


Kommentare

Beliebte Posts aus diesem Blog

MySQL DataSource for Wildfly10 like Openshift

how to configure Wildfly10 to have a DataSource for MySQL like Openshift the RedHat Cloud.

I installed Wildfly10 on ~/srv/wildfly-10.0.0.Final

Step 1: Add MySQL Driver to modules:

Download the mysql-driver mysql-connector-java-5.1.38.jar from any Maven Repository e.g.: http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.38/

go to WildFly modules Directory:
cd wildfly-10.0.0.Final/modules/system/layers/base
mkdir -p mysql/mysql-connector-java/main

copy  mysql-driver mysql-connector-java-5.1.38.jar here.

add a file module.xml with content:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" 
        name="mysql.mysql-connector-java">
    <resources>
        <resource-root path="mysql-connector-java-5.1.38.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.tr…

Java EE 7 Petclinic

A Java EE 7 Version of Spring Petclinic.

Depending on JSF and EJB and ready to run on JBoss WildFly and Oracle Glassfish.

You find a running Version with WildFly on OpenShift, the RedHat Cloud:
http://javaee7petclinic-port80guru.rhcloud.com

Source Code ist hosted on Github:
https://github.com/phasenraum2010/javaee7-petclinic

The Domain Modell  contains all basic Relationships between Entities like OneToMany, ManyToOne and also ManyToMany:


Pageflow  is complex enough to be interesting for Functional Tests with Selenium2 Webdriver, Arquillian Drone and Graphene:


Use Cases


Some Example Screen Shots






install JBoss Wildfly install JBoss Wildfly 8.0.0.Final from http://wildfly.org/downloads/
to e.g. /Users/tw/srv/wildfly-8.0.0.Final/

start JBoss by: cd /Users/tw/srv/wildfly-8.0.0.Final/bin ; ./standalone.sh
install Glassfish 4 I installed Netbeans 7.4 with Glassfish 4.0 from https://netbeans.org/downloads/
starting on Mac OSX:
cd /Applications/NetBeans/glassfish-4.0/bin/
./asadmin start-data…

MySQL as Default Database in WildFly 8.0.0.CR1

How to  replac the H2 Database for Default DataSource in JBoss WildFly 8.0.0.CR1:

Step 1: Add MySQL Driver to modules:

Download the mysql-driver mysql-connector-java-5.1.22.jar from any Maven Repository e.g.: http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.22/

go to WildFly modules Directory:
cd wildfly-8.0.0.CR1/modules/system/layers/base
mkdir -p mysql/mysql-connector-java/main

copy  mysql-driver mysql-connector-java-5.1.22.jar here.

add a file module.xml with content:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" 
        name="mysql.mysql-connector-java">
    <resources>
        <resource-root path="mysql-connector-java-5.1.22.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.serv…