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>
分享到:
相关推荐
通过上述方法,可以有效解决WebSphere 6.1与SSH2+JPA2架构之间的兼容性问题。在实际操作中,需要注意备份原始文件,并仔细检查每一步的操作以避免出现其他错误。希望本文能帮助到需要在WebSphere 6.1上部署SSH2架构...
确保所有涉及的JAR包与WebSphere和Hibernate的版本兼容,以避免潜在的类版本冲突或运行时错误。此外,遇到问题时,可以参考IBM官方文档、开发者社区论坛(如Stack Overflow)以及相关的技术博客获取帮助。
总结,通过WebSphere Application Server V6.1利用OpenJPA进行数据持久化,开发者可以受益于JPA的简洁和强大,同时利用WebSphere的稳定性与管理功能。在实际开发中,理解并熟练运用这些知识能够提高开发效率,简化...
8. **多态性(Polymorphism)**: JPA支持继承和多态性,使得你可以定义一个基类,然后多个子类继承它并有自己的数据库表。 在"apache-openjpa-1.2.0-source"这个压缩包中,包含了Apache OpenJPA项目的源代码。Open...
然而,在与Java Persistence API (JPA) 特别是版本2.0的集成方面,Weblogic存在一些兼容性问题。JPA是Java EE的一部分,用于管理数据库操作,简化对象关系映射(ORM)。它允许开发者用面向对象的方式处理数据,而...
JPA是Java EE和Java SE环境中的一种ORM(Object-Relational Mapping)解决方案,旨在替代Hibernate等第三方库,提供更加标准化的持久化框架。 **JPA规范**定义了应用程序与数据库交互的一组接口和API,包括实体...
Java Persistence API(简称JPA)是Java平台提供的一套对象关系映射(ORM)标准,它旨在为Java应用提供一种统一、灵活的数据持久化解决方案。JPA最早由Sun Microsystems在EJB 3.0规范中引入,作为JSR 220的一部分,...
本篇文章将深入探讨Java Persistence API(JPA)的规范实现及其在解决跨平台可移植性问题上的优势。JPA作为Java企业级应用中用于对象关系映射的标准框架,不仅简化了开发流程,还提供了高度的灵活性和可移植性。 ##...
它是一个轻量级、高性能的解决方案,设计目标是简化Java应用的持久化层开发。OpenJPA具有良好的可扩展性,支持动态元数据源,允许开发者在运行时调整数据映射。同时,OpenJPA可以与Spring框架和其他开源项目很好地...
这意味着开发者可以在Hibernate项目中使用JPA注解和API,而无需担心兼容性问题。 3. **灵活性**:除了JPA标准之外,Hibernate还提供了许多额外的功能,如性能优化选项、更灵活的映射配置等,这些功能在JPA标准中...
产生原因:因为使用 jpa 自动创建表的时候,采用的是TreeMap的,我们要变成LinkedHashMap ...解决方案:在项目下java文件夹下创建包名为: org.hibernate.cfg ,创建类: PropertyContainer [包名,类名一定要相同哦]
JPA必将成为Java持久化解决方案的主流,如果你是Hibernate或者TopLink的等ORM技术的忠实用户,不管你是否情愿,你迟早也得使用JPA,那现在正好可以借助传智播客视频教程的帮助,开始学习和尝试JPA吧!
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它为开发者提供了一种对象/关系映射(ORM)机制,将业务对象与数据库表之间的映射过程进行了抽象,使得在Java应用中操作...
JPA是Java应用中处理数据库操作的强大工具,尤其当它与Spring框架结合时,能够提供一个高度集成和可扩展的数据访问解决方案。理解并熟练掌握JPA的各种关系映射机制对于高效地设计和实现数据密集型应用程序至关重要。...
《Pro JPA2:精通Java™ Persistence API》不仅是JPA2的学习指南,也是开发人员在日常工作中解决问题的实用手册。无论你是初学者还是有经验的开发者,这本书都将帮助你深入了解JPA2,并将其应用到实际项目中,构建出...
- WebSphere Portal和WebSphere Commerce是IBM提供的企业级门户和电子商务解决方案,可以与WAS无缝集成。 8. **故障排查与维护**: - 通过日志分析、性能监控、JVM诊断工具等方法,可以定位和解决WebSphere中的...
在IT领域,Spring框架是Java开发中的核心工具之一,它为构建企业级应用程序提供了全面的解决方案。Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP),并且它还提供了对数据库操作的支持,这主要通过...