Xplanner0.7安装

 

 在一个偶然的机会,搭建一个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" failοnerrοr="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" οnclick='<%="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

6. 总结

在使用过程中,可能是本人操作有误,或者没使用明白。发现所建的工程没有分配给任何人,同时未能sysadmin为能看到所建的工程。也就是说,在建完工程后,就会消失。为此,在网上找了很久都没找到结果。这里加个关键字,后人来找“xplanner无工程显示”。 本人自己手动在iteration下加条记录,就能看到。看了里面的源代码发现,每次去的时候,会通过db:usebeans标签进行取出所有的工程,然后再过滤,过滤代码在projects页面上就能找到。

<%
    // todo Refactor this to a security helper class
    final HttpServletRequest r = request;
    CollectionUtils.filter(projects, new Predicate() {
        public boolean evaluate(Object o) {
            try {
                Project project = (Project)o;
                return SystemAuthorizer.get().hasPermission(project.getId(),
                            SecurityHelper.getRemoteUserId(r), project, "read");
            } catch (AuthenticationException e) {
                return false;
            }
        }
    });
%>

 

在取出所有的iteratio进行匹配,为此,工程取到了,但是没有相应teration,是看不到工程的。

 

一切看代码吧,真理在里面。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值