`
jnwzping
  • 浏览: 18447 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mondrian schema 中文乱码

阅读更多


      本文针对的是Mondrian3.5.0版本出现的中文乱码问题做些修改,使用的是官方mondrian-3.5.0.zip

 

      官方下载地址:http://sourceforge.net/projects/mondrian/files/mondrian/mondrian-3.5.0/ 。

 

      解压mondrian.war到Tomcat运行的时候查询结果会出现乱码,可在项目的web.xml文件中添加编码方式。

      修改如下:

 

	<servlet>
		<servlet-name>MondrianXmlaServlet</servlet-name>
		<servlet-class>mondrian.xmla.impl.DynamicDatasourceXmlaServlet</servlet-class>
		<init-param>
			<param-name>CharacterEncoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</servlet>
     
       在 MondrianXmlaServlet 添加了编码过滤之后,能解决部分因中文引起的乱码问题,不过因为业务需要,需要对Mondrian的源码做些修改,所以需要在本地搭建了Mondrian3.5.0源码开发环境(这里不再讨论源码环境的搭建),排除编译错误后打包Mondrian.jar包放到项目,开启log4j日志为Debug时,会看到当加载schema文件中有中文的时候,会出现中文乱码问题。并且查询结果集也会出现乱码问题。
 
      源码分析如下:
      Mondrian在加载Schema配置文件的时候由RolapSchema类完成,借助了commons-vfs.jar包,可以加载本地文件或FTP服务器上的文件作为配置文件。
 
      RolapSchema加载配置文件的入口方法为load(String,String),其中工具类Util.readVirtualFile()和Util.readVirtualFileAsString()实现了文件的读取,并分别返回InputStream文件输入流对象和文件文本String对象。
 
      如果配置文件Schema xml有中文字符的话,Util.readVirtualFile()和Util.readVirtualFileAsString()方法打印出的文件内容都会出现乱码,在这里需要改造两个地方。
 
      改造如下:
     1、修改 Util.readVirtualFileAsString()方法:
           a、return new String(chars) 改为 return new  String(bytes,"utf-8")。
     2、修改 mondrian.rolap.RolapSchema.load(String,String)方法:
           a、注释://in = Util.readVirtualFile(catalogUrl);
           b、修改:def = xmlParser.parse(in) 为:
                           def = xmlParser.parse(Util.readVirtualFileAsString(catalogUrl))
 

 

 

 

 

分享到:
评论

相关推荐

    Mondrian_Schema(多维分析)属性详解[定义].pdf

    Mondrian Schema 多维分析属性详解 Mondrian Schema 是一种多维数据库 schema,用于定义多维分析模型。该模型由多个概念组成,包括 Cube、Dimension、Hierarchy、Level 和 Member。 Cube 是多维分析模型的基本组成...

    Schema中文乱码问题解决方案

    该jar包用于解决Saiku配置Mondrian中Schema中文乱码问题

    Mondrian schema编辑器插件1.0.2版本.zip

    mondrian-schema-editor-plugin-v1.0.2.zip 文件是一个包含Mondrian Schema编辑器插件的更新版本,版本号为1.0.2。Mondrian是一款开源的关系型多维数据集引擎,常用于在线分析处理(OLAP)系统,它能够解析和执行SQL...

    mondrian schema 的eclipse插件

    mondrian schema 的eclipse插件 还需要安装 EMF&SDO (Eclipse官方的一个建模插件) 具体参考:http://jpivot.sourceforge.net/mondrian-schema/

    mondrian4 schema设计说明文档

    mondrian4 schema设计说明文档,压缩包解压后打开index.html。4版本,官网链接 https://mondrian.pentaho.com/head/documentation/schema.php,无法访问,直接用该资源即可。附3版本地址: ...

    Mondrian Schema Cube 的编写

    ### Mondrian Schema Cube 的编写 #### 什么是 Schema 在多维数据分析领域,Mondrian 是一个开源的 OLAP (Online Analytical Processing) 服务器,它能够处理复杂的查询并提供高性能的数据分析能力。Schema 在 ...

    mondrian设置schema3.0工具

    Mondrian的Schema是定义数据仓库逻辑结构的关键部分,它描述了数据如何组织、层级关系以及如何进行分析。Schema3.0是Mondrian的一个较新版本,引入了更多特性和改进,以提升性能和用户体验。 Schema Workbench是...

    官方mondrianschema编写指南&无水印版

    mondrian schema是OLAP(在线分析处理)系统中的核心组件,用于定义数据仓库的多维模型。本指南将深入探讨如何编写和优化mondrian schema,以便更好地利用OLAP分析引擎进行高效的数据查询和分析。 首先,我们需要...

    Mondrian_Schema(多维分析)属性详解

    Mondrian_Schema(多维分析)属性详解

    psw-ce-3.14.0.0-12 mondrian建模schema工具workbench

    更多可以参考官方 http://mondrian.pentaho.com/documentation/xml_schema.php#Cube 这个是可视化工具,配置好jdk1.8之后,运行workbench.sh或者workbench.bat就可以把代码弹出来,配合我其他资源的foodmart.xml就...

    mondrian支持的函数以及schame元素属性

    本篇文章将详细探讨mondrian支持的函数以及schema元素属性,并介绍mondrian在web项目中的应用。 一、mondrian函数支持 mondrian支持丰富的MDX(多维表达式)函数,这些函数允许用户进行复杂的多维数据分析。例如:...

    联机分析olap之mondrian

    Schema Workbench是Mondrian提供的一个图形化工具,用于创建和编辑Mondrian的XML schema文件。通过这个工具,开发者可以直观地设计多维数据模型,包括维度、层次、度量等,并能直接预览MDX查询结果,极大地简化了...

    mondrian-api.zip

    1. **Schema**: 在mondrian中,Schema定义了多维数据模型,包括立方体、维度、层次和度量。开发者可以通过XML或者API来创建和管理Schema。mondrian-api中的Schema接口提供了创建和操作这些元素的方法,如`addCube()`...

    mondrian源码分析和改造设计.doc

    Mondrian 的架构主要分为三个部分:静态类包、Schema Manager 和计算层。 静态类包分析 Mondrian 的静态类包主要包括 mondrian.calc、mondrian.olap 和 mondrian.rolap 等包。这些包中的类提供了 Mondrian 的核心...

    mondrian运行源码配置方法

    在压缩包中,你应该能找到mondrian源码、mondrian.properties示例、Schema XML示例、以及必要的jar包,这些是配置和运行mondrian的基础。请确保按照文档中的指导逐步操作,遇到问题时查阅相关资料或社区讨论,以解决...

    mondrian源码分析与说明.pdf

    Schema Manager是mondrian的核心组件,负责加载和管理Schema对象,它提供了创建、修改和验证Schema的接口。 2.3. 包mondrian.calc 这个包包含了mondrian的计算逻辑,包括表达式树的构造和计算。它提供了对基本和...

    官方mondrianschema编写指南_无水印.zip

    本指南将详细解释如何编写Mondrian的Schema,以便为你的数据仓库创建一个强大的分析环境。 1. **Mondrian Schema概述** Mondrian Schema是定义多维数据模型的XML文件,它描述了数据仓库的维度、层次、度量以及它们...

    Mondrian 3.0 Technical Guide

    #### 三、设计Mondrian Schema ##### 3.1 什么是Schema? - **Schema** 定义了数据的结构和组织方式,包括维度、度量、层次结构等元素。 - **Schema文件** 通常使用XML格式进行编写,这些文件描述了多维数据模型的...

    mondrian-3.5.0

    mondrian-3.5.0.jar 解决中文乱码问题

Global site tag (gtag.js) - Google Analytics