GlassFish 2.1.1 - TopLink (JPA1) Persistence Exception 7106 - String Encryption Mistery
I'm using NetBeans 6.8 and Glassfish Enterprise Server 2.1.1 ((v2.1 Patch06)(9.1_02 Patch12)) (build b31g-fcs).
I created a servlet and used Netbeans code generation features to imlement persistence using TopLink (JPA1).
When I try to create an Entity Manager with the following code:
EntityManagerFactory entityManagerFactory=Persistence.createEntityManagerFactory("xyzPU"); EntityManager entityManager=entityManagerFactory.createEntityManager();
I receive the following terrible exception:
Exception [TOPLINK-7106] (Oracle TopLink Essentials - 2.1 (Build b31g-fcs (10/19/2009))): oracle.toplink.essentials.exceptions.ValidationException Exception Description: Error encountered during string encryption. Internal Exception: java.security.ProviderException: update() failed oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:240) oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93) oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:138) oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:132) oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91) etc...
Trying to figure out what was going on I put the 2 lines of code above into a new class with a main() method (same package of the one where the code was before but outside of the servlet) and everything worked properly. Thus, there should be no issues with libraries importing, configuration files, etc.. Furthermore, I tried also running the servlet using another version of glassfish (I guess just a lighter version) and it worked fine too.
Can anyone explain me what's going on? Could it be anything related to some settings/configurations of the Glassfish Enterprise Server Edition together with the servlet environment? What should I do?
Here is something I found about the error TOP-07106 (from here):
TOP-07106: Error encountered during string encryption.
Cause: Error encountered during password string encryption.
Action: An error is raised while trying to encrypt the password string. A common reason for this exception is the usage of JDK 1.3 and earlier versions. The TopLink JCE encryption mechanism requires JDK 1.4 and later (or JDK 1.3 configured with the JCE plug-in) to function properly.
Does it help? Could you be facing a similar situation?