今天,终于解决了 EJB3+CMP+JPA1.0+Hibernate3 在 Weblogic10.3.3下的部署。核心方案是利用 Weblogic针对一个企业应用包可以单独加载类的机制,从而不受weblogic系统本身的 antlr2.7.3版本与Hibernate3使用的Antlr2.7.6冲突的限制了。
1.打成一个 EAR 包。
EAR
--META-INF
--application.xml
--weblogic-application.xml
--lib
--hibernateXXXX.jar(多个文件)
--antlr2.7.6.jar
--xxx(ejb).jar
--xxx(ejb).jar
2.application.xml描述有哪些ejb和web包。
如:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" id="Application_ID" version="5">
<display-name>eb_b2b_sqs_ear</display-name>
<module>
<ejb>eb_platform_ejb.jar</ejb>
</module>
<module>
<ejb>eb_cache_ejb.jar</ejb>
</module>
<module>
<ejb>eb_b2b_ejb.jar</ejb>
</module>
<module>
<ejb>eb_b2c_ejb.jar</ejb>
</module>
</application>
3.weblogic-application.xml描述内容为:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.2/weblogic-application.xsd">
<!--weblogic-version:10.3.4-->
<wls:application-param>
<wls:param-name>webapp.encoding.default</wls:param-name>
<wls:param-value>UTF-8</wls:param-value>
</wls:application-param>
<wls:prefer-application-packages>
<wls:package-name>antlr.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>
---------------OK。
网上提到的其他解决方案:
1.把 antlr2.7.6.jar放到 weblogic启动脚本的classpath最前面 --- 这个方案会破坏weblogic原有的功能,部署会经常提示 java.lang.NoClassDefFoundError: antlr/TokenStreamException 。虽然不影响业务应用本身,但是终究不是好办法。
2.在 WEB-INF/weblogic.xml里添加:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.1/weblogic-web-app.xsd">
<wls:weblogic-version>10.3.4</wls:weblogic-version>
<wls:context-root>eb_web</wls:context-root>
<wls:container-descriptor>
<wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>
</wls:weblogic-web-app>
---这个方案是针对web应用的,如果hibernate是在web端使用的,可以采用。如果hibernate在ejb端使用,就采用本文开头的做法。
在此,感谢无数网友的文章,这个方法不是我发明的。
在此,鄙视oracle技术服务人员,我一个月前咨询过(我有客户支持识别号),他们说:hibernate没有经过他们的验证,要改,只能改hibernate,推荐使用 eclipseLink。
我尝试改过EclipseLink,但是EclipseLink和Hibernate对HQL写法,还是有区别的(如:select count(*)和select count(1) , left join 别名等),程序已经做完了,改动太多,就放弃了。
庆祝一下
分享到:
相关推荐
《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的...
**EJB(Enterprise JavaBeans)** 是Java EE平台的一部分,主要用于构建可部署在服务器端的企业级组件。EJB包括三种类型:会话bean(Session Beans)处理业务逻辑,实体bean(Entity Beans)持久化数据,消息驱动bean...
《经典JavaEE企业应用实战-基于 WebLogic JBoss的JSF+EJB 3+JPA整合开发》这本书深入探讨了Java企业级应用的开发技术,主要聚焦于JavaServer Faces(JSF)、Enterprise JavaBeans(EJB)3以及Java Persistence API...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发 PDF 书籍 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message ...
在EJB3中,Java Persistence API(JPA)引入了一种新的对象关系映射(ORM)机制,使得开发人员能够更方便地管理数据库中的数据。本篇文章将深入探讨ejb3与JPA的关系,以及如何在实际项目中使用它们。 ### JPA概述 ...
"基于JSF+EJB3+JPA的竞价拍卖系统"是利用Java企业级技术构建的这样一个系统,主要依赖于JavaServer Faces (JSF)、Enterprise JavaBeans 3 (EJB3) 和 Java Persistence API (JPA) 这三大核心技术。下面将详细介绍这三...
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part1
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第二章 其他部分详见我的上传列表。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分...
这个例子对于初学者来说,是一个很好的实践平台,可以帮助理解EJB3在Weblogic 11g环境下的工作原理,以及如何构建和部署EJB3应用。通过研究和运行这个例子,开发者可以深入学习EJB3的核心特性,以及Weblogic服务器的...
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part2
【WebLogic11g-EJB部署】是关于在Oracle WebLogic Server 11g环境中部署Enterprise JavaBeans(EJB)的应用教程。EJB是Java EE平台的核心组件,用于构建可扩展、安全且事务处理能力强大的企业级应用。在这个教程中,...
6. 实践案例,可能包含了一个完整的EJB+JPA应用的开发流程,包括设计数据库模型、编写实体类、实现业务逻辑和部署应用。 7. 最佳实践和注意事项,如性能优化、避免N+1查询问题、事务策略选择等。 通过学习这份实践...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第10章 其他部分详见我的上传列表。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第3章 其他部分详见我的上传列表 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含...
### EJB_JPA数据库持久层开发详解 #### JPA与数据持久化技术 **数据持久化**是指将程序运行时的数据保存到永久存储设备中,以便在下次运行时能够读取和使用这些数据。在Java领域,有多种数据持久化技术,包括序列...