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 <st1:chsdate isrocdate="False" month="12" w:st="on" day="30" islunardate="False" year="1899">10.1.3</st1:chsdate>以及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,下载操作系统的补丁:<st1:chsdate isrocdate="False" month="12" w:st="on" day="30" islunardate="False" year="1899">6.1.0</st1:chsdate>-WS-WAS-WinX32-FP0000017.pak,根据具体的操作系统下载相应的补丁;
下载sdk补丁:<st1:chsdate isrocdate="False" month="12" w:st="on" day="30" islunardate="False" year="1899">6.1.0</st1:chsdate>-WS-WASSDK-WinX32-FP0000017.pak。也要根据具体的操作系统和sdk要求来下载。
升级Websphere
升级WebSphere,这儿是使用Windows的升级程序来作为例子。
1) 解压并到download.updii.61017.windows.ia32\UpdateInstaller目录下,点击install.exe
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 282pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:title=""></v:imagedata></v:shape>
点击next,选中I accept选项
<v:shape id="_x0000_i1026" type="#_x0000_t75" style="WIDTH: 415.5pt; HEIGHT: 282.75pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png" o:title=""></v:imagedata></v:shape>
校验此升级软件是否支持该操作系统
<v:shape id="_x0000_i1027" type="#_x0000_t75" style="WIDTH: 415.5pt; HEIGHT: 284.25pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image005.png" o:title=""></v:imagedata></v:shape>
输入WebSphere安装地址
<v:shape id="_x0000_i1028" type="#_x0000_t75" style="WIDTH: 415.5pt; HEIGHT: 277.5pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image007.png" o:title=""></v:imagedata></v:shape>
下面的地址你不用修改,是升级软件自动给出的,升级软件会创建这个目录并把相关需要的文件copy到该目录下。
<v:shape id="_x0000_i1029" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 283.5pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image009.png" o:title=""></v:imagedata></v:shape>
确 确认升级包安装地址及大小。
<v:shape id="_x0000_i1030" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 282pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image011.png" o:title=""></v:imagedata></v:shape>
创创建升级目录并把相关文件copy到该目录下
<v:shape id="_x0000_i1031" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 282pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image013.png" o:title=""></v:imagedata></v:shape>
升升级软件copy文件结束
<v:shape id="_x0000_i1032" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 279pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image015.png" o:title=""></v:imagedata></v:shape>
2) 2)点击finish,则开始安装具体的升级包
<v:shape id="_x0000_i1033" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 282.75pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image017.png" o:title=""></v:imagedata></v:shape>
输输入要升级的WebSphere的AppServer目录
<v:shape id="_x0000_i1034" type="#_x0000_t75" style="WIDTH: 415.5pt; HEIGHT: 286.5pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image019.png" o:title=""></v:imagedata></v:shape>
默默认选择安装升级包
<v:shape id="_x0000_i1035" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 280.5pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image021.png" o:title=""></v:imagedata></v:shape>
输输入那两个升级补丁所在的位置,最好把这两个升级包copy到如图的目录下
<v:shape id="_x0000_i1036" type="#_x0000_t75" style="WIDTH: 415.5pt; HEIGHT: 284.25pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image023.png" o:title=""></v:imagedata></v:shape>
选选择两个需要升级的包
<v:shape id="_x0000_i1037" type="#_x0000_t75" style="WIDTH: 415.5pt; HEIGHT: 284.25pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image025.png" o:title=""></v:imagedata></v:shape>
确认升级包和升级的应用服务器
<v:shape id="_x0000_i1038" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 285pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image027.png" o:title=""></v:imagedata></v:shape>
开始升级
<v:shape id="_x0000_i1039" type="#_x0000_t75" style="WIDTH: 414.75pt; HEIGHT: 284.25pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image029.png" o:title=""></v:imagedata></v:shape>
升级成功结束
<v:shape id="_x0000_i1040" type="#_x0000_t75" style="WIDTH: 415.5pt; HEIGHT: 284.25pt"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image031.png" o:title=""></v:imagedata></v:shape>
<o:p> </o:p>
这样重新启动WebSphere,应用系统正常运行。
<o:p> </o:p>
<o:p> </o:p>
努力,在于我热爱我的事业,与中国的软件一起走向成熟,走向世界。<o:p></o:p>
<o:p></o:p>
联系作者:lijj_72@hotmail.com<o:p></o:p>
<o:p> </o:p>