JPA 与 Websphere的兼容性问题解决方案
李俊杰
概述
考虑到OR映射的产品多样化,为了更富有柔性化的设计,我们的产品采用JPA作为Persistence layer的持久化技术,hibernate3.2(hibernate3.2才支持JPA),spring2.0作为IOC和AOP的工具。产品的运行环境为Websphere6.1(因为我们的产品是基于jdk1.5)。JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范,得到所有Java EE服务器的支持,是一个易于使用、伸缩性强的ORM规范。目前Hibernate 3.2、TopLink 10.1.3 以及OpenJpa都提供了JPA的实现。
错误信息
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/context/rdf/applicationContext-dao.xml]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException |
错误原因
这个错误是IBM JVM 的bug,同样的程序在tomcat5.5,和jboss4.03上都没有问题,迁移到WebSphere上就有如上的错误。
解决方案
下载WebSphere软件升级包,升级Websphere。
下载Websphere升级软件
地址:http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg24012718 ,下载download.updii.61017.windows.ia32,可以根据具体的操作环境和Websphere版本下载相应的升级软件。
下载支持操作系统及sdk的补丁
地址:http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg27007951,下载操作系统的补丁: 6.1.0 -WS-WAS-WinX32-FP0000017.pak,根据具体的操作系统下载相应的补丁;
下载sdk补丁: 6.1.0 -WS-WASSDK-WinX32-FP0000017.pak。也要根据具体的操作系统和sdk要求来下载。
升级Websphere
升级WebSphere,这儿是使用Windows的升级程序来作为例子。
1) 解压并到download.updii.61017.windows.ia32/UpdateInstaller目录下,点击install.exe
点击next,选中I accept选项
校验此升级软件是否支持该操作系统
输入WebSphere安装地址
下面的地址你不用修改,是升级软件自动给出的,升级软件会创建这个目录并把相关需要的文件copy到该目录下。
确 确认升级包安装地址及大小。
创创建升级目录并把相关文件copy到该目录下
升升级软件copy文件结束
2) 2)点击finish,则开始安装具体的升级包
输输入要升级的WebSphere的AppServer目录
默默认选择安装升级包
输输入那两个升级补丁所在的位置,最好把这两个升级包copy到如图的目录下
选选择两个需要升级的包
确认升级包和升级的应用服务器
开始升级
升级成功结束
这样重新启动WebSphere,应用系统正常运行。
努力,在于我热爱我的事业,与中国的软件一起走向成熟,走向世界。
联系作者:lijj_72@hotmail.com