在一个偶然的机会,搭建一个Xplanner0.7环境。但是,在这个过程中,遇到很多网上没有提到的问题。为此
编写改文档记录一下个人收获!分享一下。
安装步骤:
1. 下载xplanner
在官网上有很多相关的下载。
官方网址: http://www.xplanner.org/
下载最新版本 xplanner-0.7b7b-war.zip
(现在最新 0.7b7 版分为: xplanner-0.7b7-standalone.zip 和 xplanner-0.7b7-war.zip 这两个:两个版本间的关系:
xplanner-0.7b7-standalone.zip 自带的 tomcat )
本人安装环境 :
JDK 1.6
tomcat6.0
mysql5.1
基于 windows 操作系统
关于这个环境问题( XPlanner 部署在 JDK1.6 上的问题( http://thinking.5ming.org.cn/2008/11/28/xplanner-jdk/ )。发现修改 spring-beans.xml 后也可在 jdk6 下运行。)
在这里说明一下,下个ant0.7就能使用,这里不说明了。
2 生成数据库脚本
在解压后,在其xplanner-0.7b7-war\installer目录下有一个build-db.xml文件,在这个文件中,有一段代码描述关于数据库方面的编译情况。代码如下:
<target name=”_hibernate.schema.export” depends=”_init”>
<property name=”temp.dir” value=”build”/>
<java.tool classname=”com.technoetic.xplanner.db.hibernate.TransformingSchemaExport” failonerror=”true”>
<arg value=”${schema.textoutput.option}”/>
<arg value=”–output=${temp.dir}/hibernate_schema.sql”/>
</java.tool>
</target>
其实具体情况,看一下com.technoetic.xplanner.db.hibernate.TransformingSchemaExport这个类,就很明显。
参数描述如下:
–quiet 不采用System.out.println输出。
–drop 生成的SQL中是否要有create语句。
–text 是否要链接到数据库中执行,同时要执行的条件就是数据库连接不能为空!
–output= 定义输出的路径
–format 是否要格式化SQL
–delimiter=
–config= 配置Hibernate的链接信息
如果需要直接生成到数据库中,则需要配置如下信息:
xplanner/web-inf/classes/ 下的 xplanner-custom.properties 成相应的数据库连接
## XPlanner hibernate configuration
hibernate.dialect= com.technoetic.xplanner.db.hibernate.XPlannerMySQLDialect
hibernate.connection.driver_class= com.mysql.jdbc.Driver
hibernate.connection.dbname = 为xplanner工作的数据库
hibernate.connection.url= jdbc : mysql://localhost/xplanner?autoReconnect=true&useUnicode=true&characterEncoding=GBK
注意,编码方式,建议使用UTF-8
hibernate.connection.username = 数据库名称
hibernate.connection.password = 密码
#hibernate.show_sql=false
其原理很简单,主要是根据mapping文件夹中的xml配置信息,进行逆向生成。
按照自己的需要,修改buil-db.xml文件后,直接执行一下命令。前提条件是ant必须已经安装好。ant乱找一个就能用。由于用ant命令生成的脚本,没有分号,不太方便。为此跑到了eclipse下修改源代码并执行代码获得脚本。
ant命令: ant install.db.schema(改命令是完全可用的,只是生成的SQL文件每句后面没有分号)
然后把的到得脚本在数据库里执行,就可以了。
数据库的库表结构搭建完成。网上很多地方都说到这里,就结束。事实上并没有完成。还需要一些初始化的工作。官网提供的脚本中,存在错误。那是由于0.6的版本的脚本,参合到0.7中。同时在这里也说明一个开源的弊端。
具体初始化脚本在xplanner\WEB-INF\classes\patches目录下。里面的很多脚本基本上没有用,有用的只是patch0002_bootstrap_users_and_permissions.sql。这个数据库脚本的主要作用就是生成一个管理员账号和定义具体的任务规则。但是,这个官网版本执行会直接报错(至少在mysql 5.0 下报错)。为此,需要删除掉该脚本下的所有关于permission 的插入操作。会缺少一个字段的值。
INSERT INTO permission VALUES(6,5,’%’,’%’,0, 1);
INSERT INTO permission VALUES(7,3,’-create.project’,’system.project’,0, 1);
INSERT INTO permission VALUES(8,3,’-create.person’,’system.person’,0, 1);
INSERT INTO permission VALUES(9,4,’-create.project’,’system.project’,0, 1);
INSERT INTO permission VALUES(10,4,’admin%’,’%’,0, 1);
INSERT INTO permission VALUES(11,3,’create%’,’%’,0, 1);
INSERT INTO permission VALUES(12,3,’edit%’,’%’,0, 1);
INSERT INTO permission VALUES(13,3,’integrate%’,’%’,0, 1);
INSERT INTO permission VALUES(14,3,’delete%’,’%’,0, 1);
INSERT INTO permission VALUES(15,2,’read%’,’%’,0, 1);
还有件重要的是,后面的positive这个字段一定要给1,否则后面你即将无法显示相应的工程,为了这个问题,代码都方便。
3 修复页面错误
当你走到2的时候,你可能会想,应该启动公猫就可以了。事实却想法。需要修复两个页面的错误。
修复1:
目录:xplanner\WEB-INF\jsp\view
页面名称:notes.jsp
在这个页面下一下代码修改一下:
<xplanner:link page=”/do/delete/note” onclick='<%=”return confirm(‘Do you want to delete note \\\\’” + StringUtilities.replaceQuotationMarks(StringEscapeUtils.escapeJavaScript(note.getSubject())) + “\\\\’?’)”%>’>
<html:img page=”/images/delete.gif” alt=”delete” border=”0″/>
<xplanner:linkParam id=”oid” name=”note” property=”id”/>
</xplanner:link>
将<%=”return confirm(‘Do you want to delete note \\\\’” + StringUtilities.replaceQuotationMarks(StringEscapeUtils.escapeJavaScript(note.getSubject())) + “\\\\’?’)”%>提取出来,用个变脸给替换一下就可以;
修复2:
目录:xplanner\WEB-INF\jsp\common
页面名称:footer.jsp
错误页面代码:
<bean:message key=”footer.message” arg0=”<%=productionSupportEmail%>” arg1=”<%=issueLink%>” arg2=”<%=appUrl+”/do/systemInfo”%>”/>
将arg2=”<%=appUrl+”/do/systemInfo”%>提出出来,采用一个变量替换。
刚装完,发现有连个地方错误。
4 建立站点。按照自己的想法建就可以。
5 登陆进去,用户:sysadmin密码:admin
转载请注明:夜阑小雨 » Xplanner0.7安装