xplanner-0.7b7b 部署问题解决

xplanner-0.7b7b 部署问题解决

很早的时候就想尝试使用XPlanner,但是一直都没有成功,感觉很简单

但是运行时总是报spring的一个配置文件出错

今天终于在网上找到解决方案了

原来是因为XPlanner部署在JDK1.6上的问题

http://jira.codehaus.org/browse/XPR-391

错误如下:

ERROR – alina].[localhost].[/xplanner] – Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘metaRepository’ defined in class path resource [spring-beans.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 errors); nested propertyAccessExceptions are: [org.springframework.beans.TypeMismatchException: Failed to convert property value of type [org.apache.commons.collections.map.LinkedMap] to required type [java.util.HashMap] for property ‘repositories’]
PropertyAccessExceptionsException (1 errors)
org.springframework.beans.TypeMismatchException: Failed to convert property value of type [org.apache.commons.collections.map.LinkedMap] to required type [java.util.HashMap] for property ‘repositories’
at org.springframework.beans.BeanWrapperImpl.doTypeConversionIfNecessary(BeanWrapperImpl.java:839)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:584)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:469)

原来是spring-beans.xml文件中的问题

就是这个部分

<bean id=”metaRepository” class=”com.technoetic.xplanner.domain.repository.MetaRepositoryImpl”>
<property name=”repositories”>
<map>

com.technoetic.xplanner.domain.repository.MetaRepositoryImpl的repositories需要一个map,

spring中使用使用的实现是org.apache.commons.collections.map.LinkedMap

但是org.apache.commons.collections.map.LinkedMap实现了java.util.Map接口啊!

理论上应该的可以的啊!但是却出现了转化错误,没有找到原因,但是找到了解决方案啊!

把<property name=”repositories”><map>……</map></property>

修改为

<property name=”repositories”>
<bean class=”java.util.HashMap”>
<constructor-arg>

<map>…..</map>
</constructor-arg>
</bean>

</property>

就可以了啊!

 

还有两个问题。。。。

 

1.JSP页面错误

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())) + “‘?’)”%>’>

替换成:<xplanner:link page=”/do/delete/note” οnclick='<%=”return confirm(/’Do you want to delete note /'” + StringUtilities.replaceQuotationMarks(StringEscapeUtils.escapeJavaScript(note.getSubject())) + “/’?/’)”%>’>

WEB-INF/jsp/common/footer.jsp

 

原来的:<bean:message key=”footer.message” arg0=”<%=productionSupportEmail%>” arg1=”<%=issueLink%>” arg2=”<%=appUrl+”/do/systemInfo”%>”/>

替换成:<bean:message key=”footer.message” arg0=”<%=productionSupportEmail%>” arg1=”<%=issueLink%>” arg2=”<%=appUrl+/”/do/systemInfo/”%>”/>

 

2.用户怎么不能登陆?

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,否则后面你即将无法显示相应的工程,为了这个问题,代码都方便。

 

参考

安装:http://www.8100.cc/space-2034-do-blog-id-7091.html

修改JSP:http://archive.codehaus.org/lists/org.codehaus.xplanner.scm/msg/20081101164932.CB68214A808A@codehaus01.managed.contegix.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100517.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • idea 2022.01.4 mac激活码(JetBrains全家桶)2022.02.23

    (idea 2022.01.4 mac激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlHCIQ56F36O-eyJsaWN…

    2022年4月1日
  • pycharm的字体设置_pycharm怎么设置字体

    pycharm的字体设置_pycharm怎么设置字体设置的路径是File->settings->Editor->FileandCodeTemplates->PythonScript再来看下效果:设置OK

    2022年8月29日
  • 关于用户路径分析模型_spark用户行为路径

    关于用户路径分析模型_spark用户行为路径在网页或者营销渠道中,用户行为模型有比较多,基于渠道的,笔者觉得有:渠道类型渠道重要性渠道跳转与流失单渠道,多节点路径分析,漏斗功能多渠道归因分析这里多渠道指的是,单渠道多节点的场景比较好理解,就是进入某个web\小程序,在不同页面之间进行跳转,多渠道这里比较多的就是,同一用户在不同的较大的场景下的流转,比如在小红书种草->微信好友推荐->淘宝上买了。归因分析是通过一定的逻辑方法,计算每个渠道、或者触点对最终结果贡献程度的方法。有一套合理

    2022年8月24日
  • typedef struct Lnode{ Elemtype data; struct Lnode *next; } Lnode,*Linklist;「建议收藏」

    typedef struct Lnode{ Elemtype data; struct Lnode *next; } Lnode,*Linklist;「建议收藏」*next是指向下一个值的地址而*Linklist是当前这个值的地址,只是这个值里有数据data,和下一个值的地址就是说链表中,因为数据是随机储存的,所以地址不是连续的,要想读取下一个数,就要知道下一个数据的地址不知道有没有看懂,表达能力不是很好*Linklist相当于一个数组头指针,只是这个数组的元素是结构体*next则是构成链表的一个基本元素,指向该结点下一个结点的地址从某种意义上讲,*Linklist是指定了这段空间在内存中的位置(可以申请连续的结点空间),而*next则对结点进行了一

    2022年5月19日
  • linux下DNS配置及域名解析服务

    linux下DNS配置及域名解析服务一.DNS(DomainNameSystem,域名系统)    因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。    DNS服务器将域名解析出来,找到域名对应的ip地址的…

    2022年5月24日
  • java linkhashset_java中集合怎么定义

    java linkhashset_java中集合怎么定义LinkedHashSet是Set集合的一个实现,具有set集合不重复的特点,同时具有可预测的迭代顺序,也就是我们插入的顺序。并且linkedHashSet是一个非线程安全的集合。如果有多个线程同时访问当前linkedhashset集合容器,并且有一个线程对当前容器中的元素做了修改,那么必须要在外部实现同步保证数据的冥等性。下面我们new一个新的LinkedHashSet容器看一下具体的源码实现。…

    2022年10月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号