我正在使用NetBeans 6.8和Glassfish Enterprise Server 2.1.1((v2.1 Patch06)(9.1_02 Patch12))(内部版本b31g-fcs)。
我创建了一个servlet,并使用Netbeans代码生成功能使用TopLink(JPA1)来实现持久性。
当我尝试使用以下代码创建实体管理器时:
EntityManagerFactory entityManagerFactory=Persistence.createEntityManagerFactory("xyzPU");
EntityManager entityManager=entityManagerFactory.createEntityManager();
我收到以下可怕的异常:
异常[TOPLINK-7106](Oracle TopLink Essentials-2.1(Build b31g-fcs(10/19/2009))):oracle.toplink.essentials.exceptions.ValidationException
异常描述:字符串加密期间遇到错误。
内部异常:java.security.ProviderException:update()失败
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)
等等...
为了弄清楚到底发生了什么,我使用main()方法将上面的两行代码放入一个新类中(该代码与servlet之前的代码相同,但在servlet之外)。因此,库导入,配置文件等应该没有问题。此外,我还尝试使用另一版本的glassfish(我想只是较轻的版本)运行servlet,并且它也可以正常工作。
谁能解释我发生了什么事?可能与Glassfish Enterprise Server Edition的某些设置/配置以及Servlet环境有关吗?我该怎么办?
最佳答案
这是我发现的关于TOP-07106错误的信息(来自here):
TOP-07106:字符串加密期间遇到错误。
原因:期间遇到错误
密码字符串加密。
动作:
尝试时出现错误
加密密码字符串。普通的
出现此异常的原因是用法
JDK 1.3和更早版本。的
TopLink JCE加密机制
需要JDK 1.4和更高版本(或JDK 1.3
配置了JCE插件)
功能正常。
1级
类型:错误
影响:配置
有帮助吗?您可能会遇到类似情况吗?
关于java - GlassFish 2.1.1-TopLink(JPA1)持久性异常7106-字符串加密Mistery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3161624/