最近同事在weblogic8.1下使用xmlbean,中间出现个问题,有个节点存储的内容也是个xml,输出的时候要求用CDATA括起来。
总结下,在weblogic的xmlbean中和apache的xmlbean有几种情况
1)weblogic的xmlbean和apache的xmlbean-1.x:
根据内容的大小和特殊字符的个数有个算法来决定是用CDATA扩起来还是转义
具体的判断在com.bea.xbean.store.Saver$TextSaver和org.apache.xmlbeans.impl.store.Saver$TextSaver里面
if ((this._lastEmitCch > 32) && (count > 5) && (count * 100 / this._lastEmitCch > 1)){
//用<![CDATA[
}else{
//转义
}
其中_lastEmitCch应该是内容的总数量,count是 '<'和'&'的数量
2)在apache的xmlbean-2.x中,估计是意识到了该部分的不可控性,添加了SAVE_CDATA_ENTITY_COUNT_THRESHOLD 、SAVE_CDATA_LENGTH_THRESHOLD 、LOAD_SAVE_CDATA_BOOKMARKS 来控制输出 具体见
http://xmlbeans.apache.org/docs/2.4.0/reference/index.html
判断条件也改成了
if (forceCData || (_lastEmitCch > _cdataLengthThreshold && count > _cdataEntityCountThreshold) )
{
//用<![CDATA[
}else{
//转义
}
自己想到的一种修改方式:patch Saver类,让他基本按照CDATA输出.
开始的时候尝试反编译Saver改完后再编译。但是各种内部类和jar的引用搞的焦头烂额,
最后采取patch bytecode的方式
原来的是
106: getfield #94; //Field _lastEmitCch:I
109: bipush 32
111: if_icmple 332
114: iload 4
116: iconst_5
117: if_icmple 332
120: iload 4
122: bipush 100
124: imul
125: aload_0
126: getfield #94; //Field _lastEmitCch:I
129: idiv
130: iconst_1
131: if_icmple 332
134: aload_0
135: getfield #99; //Field _buf:[C
138: iload_1
139: caload
最开始想吧131处的改成00,但是报错。。。最后决定改成if_icmple 134
然后把patch后的文件打进jar放到EAR里面。自己测试倒是通过了,但是不知道是否存在jar引用先后顺序的问题。。。。
分享到:
相关推荐
weblogic 8.1 plugin for Eclipse 3.4 weblogic 8.1 plugin for Eclipse 3.4 weblogic 8.1 plugin for Eclipse 3.4
WebLogic Server 8.1是Oracle公司开发的一款企业级应用服务器,它在Java平台上提供了一个用于构建、部署和管理分布式应用程序的平台。WebLogic Server 8.1的安装过程是IT管理员和开发者需要掌握的关键技能之一,因为...
- 对于在 Weblogic 8.1 下运行的应用程序,可能需要进行一些代码层面的调整来解决特定的问题。 - **公文表单显示乱码/出错:** - 修改 officeForm.java 文件中的第 1327 行,将字符集从 UTF-16 改为 GBK。 - **...
在本文中,我们将深入探讨如何配置WebLogic 8.1,包括设置WebLogic Workshop IDE的字体、安装简体中文包、调整系统语言环境以及理解WebLogic Workshop 8.1在处理SOAP消息时的编码行为。 首先,我们来关注WebLogic ...
在WebLogic 8.1中,以下几个核心知识点是值得深入理解的: 1. **J2EE 1.3支持**:WebLogic 8.1是基于J2EE 1.3标准的,这意味着它支持EJB(Enterprise JavaBeans)、Servlet、JSP(JavaServer Pages)、JMS(Java ...
- **启动配置向导**:通过“开始”菜单选择【BEA WebLogic Platform 8.1】>【Configuration Wizard】,在弹出的窗口中选择“创建一个新的WebLogic配置(Create a new WebLogic configuration)”并点击【Next】。...
在本文中,我们将详细探讨如何安装和配置WebLogic 8.1。 1. **软件获取与版权** 软件版权是开发人员应尊重的重要原则。尽管正版软件价格较高,但许多软件厂商已转向服务模式,提供更经济的方案供个人用户使用。...
weblogic8.1版本_1 BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、 网络应用和数据库应用的Java应用服务器。 这个版本很难找哦......
WebLogic Server 8.1是Oracle公司开发的一款企业级Java应用服务器,它是基于Java EE(Java Platform, ...《Weblogic 8.1安装手册》PDF文件应该详细解释了每一步骤和可能遇到的问题,是安装过程中重要的参考资料。
AIX下运行的weblogic8,weblogic8.1sp5补丁,修复该版本服务无故停止响应的问题
在WebLogic 8.1中配置JDBC是一个关键步骤,因为JDBC(Java Database Connectivity)是Java应用程序与各种数据库之间通信的标准接口。本教程将详细解释如何在WebLogic服务器上设置JDBC连接池和数据源。 首先,启动...
在本篇文章中,我们将深入探讨WebLogic 8.1的基础知识,包括其安装和设置过程。 **一、WebLogic Server 8.1简介** WebLogic Server 8.1是WebLogic Server系列的一个重要版本,它提供了一个可扩展、高可用性的平台...
### WebLogic 8.1 配置说明 #### 前言 WebLogic Server 是一款高性能、高可用性且易于管理的应用服务器,适用于构建大型企业级应用系统。本篇文章将根据给定的部分内容来详细解释如何进行 WebLogic 8.1 的安装与...
本文档将详细介绍如何在Weblogic 8.1环境下进行应用部署的过程,包括启动Weblogic服务、配置数据源以及部署应用程序等关键步骤。 #### 二、启动Weblogic服务 首先,我们需要启动Weblogic服务。可以通过以下步骤...
本文档详细介绍了 WebLogic 8.1 的安装和配置过程,包括安装前的准备、具体安装步骤、基本配置以及常见问题解决方法。通过本文档的学习,初学者应该能够顺利完成 WebLogic 的安装,并掌握基本的数据源配置技巧。如果...
在这个配置部署文档中,我们将深入探讨如何在WebLogic 8.1环境中配置JNDI(Java Naming and Directory Interface)、设置Oracle数据源以及部署应用程序。 1. **配置JNDI和Oracle数据源** JNDI 是Java平台的一个...
在"在weblogic8.1中创建域.avi"这个视频文件中,很可能是对上述步骤的可视化演示,观众可以通过观看视频更直观地了解每个步骤的操作过程。这在没有文字说明的情况下尤其有用,因为视频可以展示操作的细节,如鼠标...
Weblogic 8.1 +SP2破解版
在本文中,我们将详细讲解WebLogic Server 8.1的安装与配置步骤,这对于初学者了解和掌握这款服务器的使用至关重要。 **安装WebLogic 8.1** 1. **启动安装程序**: 首先,你需要运行WebLogic 8.1的安装程序。这个...