我正在使用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/

10-09 04:23