Tag - 二次开发

saiku3 二次开发 java OpenBI    2017-07-19 21:14:57    33

总览

saiku的社区版本二次开发一直以来都是比较费劲的,最近saiku社区版在新版本中,引入了license的机制,于是我选了个3.8稳定版本(release-3.8),且不需要license的版本作为基础,将代码合并在一个项目中,以简化二次开发和源码研究。

完成以下步骤后的结果是:

作为一个普通maven项目,可以使用eclipse部署在tomcat中,debug等各种玩耍

操作步奏

  1. 创建新项目saiku3

    image

  2. 在创建的项目中,分别创建resource目录:“src/main/saiku-web”,“src/main/saiku-service”,“src/main/saiku-olap-util”,并将saiku-core下的相应代码(java目录下和resources目录下的文件)分别copy到里面,

  3. 将saiku-webapp\src\main\webapp目录下的所有文件,覆盖到新建项目的webapp目录中

  4. 将编译过后的zip包中tomcat\webapps\下的ROOT目录中文件全部copy到新建项目的webapp目录中并修改/saiku3/src/main/webapp/js/saiku/Settings.js文件中的TOMCAT_WEBAPP值为“/saiku3”

  5. 将编译过后的zip包中saiku-server目录下的data和repository文件夹copy到项目的webapp目录中

  6. 修改saiku-beans.properties文件,修改所有“../../”的地方替换为“../webapps/saiku3/”;修改saiku-beans.properties文件,修改pluginpath为“../webapps/saiku3/js/saiku/plugins/”(20160614修改)

  7. 修改eclipse中tomcat的工作路径:参考如下文章 http://blog.csdn.net/gsying1474/article/details/51597995

  8. 修改 Database.java中的init方法,注释loadEarthquakes();方法的调用,以保证代码启动(此方法的代码中有部分导致启动错误,此方法为加载demo数据,所以不会影响功能使用)

  9. 整理POM文件中的jar包依赖(比较复杂)

  10. 如果不使用maven项目,也可以将打包好的项目中jar包全部copy到lib

saiku3 二次开发 OpenBI    2017-07-19 21:12:26    6

由于二次开发需要重新整理pom文件,而pom文件中的依赖关系比较难整理,故将整理好的pom文件发出来,以供参考

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>cn.firewarm</groupId>
	<artifactId>saiku3</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>saiku Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<distributionManagement><!--add by liuyg -->
		<snapshotRepository>
			<id>snapshots-host</id>
			<url>http://nexus.firewarm.cn:8081/nexus/content/repositories/snapshots-host/</url>
		</snapshotRepository>
	</distributionManagement>
	<properties>
		<saiku.version>3.8-RC5</saiku.version>
		<maven.compiler.source>1.7</maven.compiler.source>
		<maven.compiler.target>1.7</maven.compiler.target>
		<top.dir>${project.basedir}</top.dir>
		<!-- <spring.version>4.0.1.RELEASE</spring.version> -->
		<spring.versi
saiku3.8 saiku 二次开发 OpenBI    2017-04-28 16:26:14    264

在saiku3.8的二次开发版本中,由于运行环境的特殊性,经常会遇到一些问题,但是不是莫名其妙,而是有依据可循的,下面来看下找不到文件“configuration.xml”的解决办法:

报错信息

  1. 10:29:39,422 ERROR [RepositoryDatasourceManager] Could not start repo
  2. org.apache.jackrabbit.core.config.ConfigurationException: Configuration file could not be read.
  3. at org.apache.jackrabbit.core.config.ConfigurationParser.parseXML(ConfigurationParser.java:292)
  4. at org.apache.jackrabbit.core.config.RepositoryConfigurationParser.parseRepositoryConfig(RepositoryConfigurationParser.java:323)
  5. at org.apache.jackrabbit.core.config.RepositoryConfig.create(RepositoryConfig.java:351)
  6. at org.apache.jackrabbit.core.config.RepositoryConfig.create(RepositoryConfig.java:327)
  7. at org.apache.jackrabbit.core.config.RepositoryConfig.create(RepositoryConfig.java:277)
  8. at org.saiku.repository.JackRabbitRepositoryManager.start(JackRabbitRepositoryManager.java:169)
  9. at org.saiku.service.datasource.RepositoryDatasourceManager.l
二次开发 saiku OpenBI    2017-03-26 21:55:55    27

参考原文,略作修改:http://www.cnblogs.com/avivaye/p/4881106.html

以上链接文章的思路是正确的,有略微的遗漏,saiku-beans.properties中也存在与用户相关的H2数据库配置,并且在id为“userDaoDataSource”的bean中有用到,为了避免出现问题,将其一并替换,并修改原文中部分配置到配置文件中

修改web.xml,将原有的与用户相关的h2数据库配置注释

  1. <context-param>
  2. <param-name>db.url</param-name>
  3. <param-value>jdbc:h2:../../data/saiku;MODE=MySQL</param-value>
  4. </context-param>
  5. <context-param>
  6. <param-name>db.user</param-name>
  7. <param-value>sa</param-value>
  8. </context-param>
  9. <context-param>
  10. <param-name>db.password</param-name>
  11. <param-value></param-value>
  12. </context-param>

修改saiku-beans.xml中与用户相关的h2数据库配置

  1. <bean id="h2database" class="org.saiku.database.Database" init-method="init">
  2. <property name="datasourceManager" ref="repositoryDsManager"/>
  3. <property name="datasourcetype" value="mysql" /><!-- add by liuyg -->
  4. <property name="url" value="${userdao.url}" />
  5. <pr
OpenBI saiku 二次开发    2017-03-26 21:54:22    16

总览

saiku的社区版本二次开发一直以来都是比较费劲的,最近saiku社区版在新版本中,引入了license的机制,于是我选了个3.8稳定版本(release-3.8),且不需要license的版本作为基础,将代码合并在一个项目中,以简化二次开发和源码研究。

完成以下步骤后的结果是:

作为一个普通maven项目,可以使用eclipse部署在tomcat中,debug等各种玩耍

操作步奏

  1. 创建新项目saiku3image

  2. 在创建的项目中,分别创建resource目录:“src/main/saiku-web”,“src/main/saiku-service”,“src/main/saiku-olap-util”,并将saiku-core下的相应代码(java目录下和resources目录下的文件)分别copy到里面,

  3. 将saiku-webapp\src\main\webapp目录下的所有文件,覆盖到新建项目的webapp目录中

  4. 将编译过后的zip包中tomcat\webapps\下的ROOT目录中文件全部copy到新建项目的webapp目录中并修改/saiku3/src/main/webapp/js/saiku/Settings.js文件中的TOMCAT_WEBAPP值为“/saiku3”

  5. 将编译过后的zip包中saiku-server目录下的data和repository文件夹copy到项目的webapp目录中

  6. 修改saiku-beans.properties文件,修改所有“../../”的地方替换为“../webapps/saiku3/”;修改saiku-beans.properties文件,修改pluginpath为“../webapps/saiku3/js/saiku/plugins/”(20160614修改)

  7. 修改eclipse中tomcat的工��路径:参考如下文章
    http://blog.csdn.net/gsying1474/article/details/51597995

  8. 修改 Database.java中的init方法,注释loadEarthquakes();方法的调用,以保证代码启动(此方法的代码中有部分导