I recently stumbled upon a Spring Exception while working with Spring Data JPA and attempting to deploy a WAR file on glassfish.
I have a JTA datasource defined in my glassfish which is used by Spring (through JNDI) to instantiate my entity manager.
The JPA configuration was pretty straight forward but every time I tried to deploy the app on Glassfish I stumbled upon the error :
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name
'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0':
Initialization of bean failed;
nested exception is java.lang.IllegalStateException:
No persistence exception translators found in bean factory.
Cannot perform exception translation.
Apparently when using Hibernate there is an easy fix for this :
Declaring a Hibernate Exception Translator in the spring beans config file :
When using EclipseLink though this doesn't work...
So I looked for implementations of the spring interface :
org.springframework.dao.support.PersistenceExceptionTranslator
And found out that there is not an
EclipseLinkExceptionTranslator (as for Hibernate)
but there is a EclipseLinkJpaDialect
org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect
That implements the interface so I created a bean in the spring configuration file and I was able to deploy the app on the glassfish.
No comments:
Post a Comment