XPlanner is a project planning and tracking tool for eXtreme Programming (XP) teams. This guide describes how to install XPlanner on a Windows XP system.
Installation of required software
- Download and install JDK 6 Update 13
- Copy the file
C:\Program Files\Java\jdk1.6.0_13\bin\msvcr71.dllintoC:\WINDOWS\system\(details) - Download and install Apache Tomcat 6.0.18
- Download and unzip XPlanner Version 0.7b7
- Copy the extracted folder
xplanner-0.7b7-war\xplanner\intoC:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\
Configuration of XPlanner
Specify the database credentials in the XPlanner database configuration file xplanner-custom.properties which is located inside the C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\xplanner\WEB-INF\classes\ folder.
Adjustment of XPlanner source code
XPlanner does not officially support the versions of Java and Tomcat that we have installed, but only minor adjustments needs to be taken to get up and running.
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\xplanner\WEB-INF\classes\spring-beans.xml. Replace (details):
… <property name="repositories"> <map>...</map> </property> …
with:
… <property name="repositories"> <bean class="java.util.HashMap"> <constructor-arg> <map>...</map> </constructor-arg> </bean> </property> …
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\xplanner\WEB-INF\jsp\common\WEB-INF\jsp\common\footer.jsp line 43. From:
…
<bean:message key="footer.message"
arg0="<%=productionSupportEmail%>"
arg1="<%=issueLink%>"
arg2="<%=appUrl+"/do/systemInfo"%>"/>
…
to:
…
<bean:message key="footer.message"
arg0="<%=productionSupportEmail%>"
arg1="<%=issueLink%>"
arg2='<%=appUrl+"/do/systemInfo"%>'/>
…
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\xplanner\WEB-INF\jsp\view\notes.jsp line 86. From:
… <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> …
to:
… <xplanner:link page="/do/delete/note"> <html:img page="/images/delete.gif" alt="delete" border="0"/> <xplanner:linkParam id="oid" name="note" property="id"/> </xplanner:link> …
Note that this removes the confirmation of deleting comments in XPlanner.
Start XPlanner
The last step is to start XPlanner from the Tomcat Web Application Manager.
Roger
29.07.09
I’m trying it right now, by now it seems a great effort to make it work with the latest jdk and latest tomcat… anyone knows what happened with the project? or anyone recommends another tool?
Ramesh
16.04.10
I am unable to add people into the Xplanner project. If i click on People link in the xplanner then it is throwing an error message. I was struck here
Please suggest me what i have to do.
I am getting below error:
org.apache.jasper.JasperException: jsp:getProperty for bean with name ‘person’. Name was not previously introduced as per JSP.5.3
> at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1086)
> at org.apache.jasper.compiler.Node$GetProperty.accept(Node.java:1124)
> at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
> at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
> at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1734)
> at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
> at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
> at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
> at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1734)
> at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
> at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
> at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
> at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1734)
> at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
> at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
> at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
> at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1734)
> at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
> at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
> at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
> at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1734)
> at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
> at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
> at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
> at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
> at org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
> at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
> at org.apache.jasper.compiler.Generator.generate(Generator.java:3416)
> at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
> at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
> at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
> at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
> at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
> at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
> at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
> at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at com.technoetic.xplanner.filters.RequestCharacterEncodingFilter.doFilter(RequestCharacterEncodingFilter.java:37)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at com.technoetic.xplanner.security.filter.AbstractSecurityFilter.doFilter(AbstractSecurityFilter.java:51)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at com.technoetic.xplanner.filters.ServletRequestFilter.doFilter(ServletRequestFilter.java:24)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at com.technoetic.xplanner.db.hibernate.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:43)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at com.technoetic.xplanner.filters.ActivityLogFilter.doFilter(ActivityLogFilter.java:34)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
> at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
> at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
> at java.lang.Thread.run(Unknown Source)
> System Environment
> [hide] Build
> * Version: 0.7b7
> * Build Date: 05/24/2006
> * Build Revision: 1149
> * Build Package: War
> [hide] Database
> * Dialect: com.technoetic.xplanner.db.hibernate.XPlannerMySQLDialect
> * Driver: com.mysql.jdbc.Driver
> * Driver Version: mysql-connector-java-3.1.12 ( $Date: 2005-11-17 15:53:48 +0100 (Thu, 17 Nov 2005) $, $Revision$ )
> * Database Vendor: MySQL
> * Database Version: 5.1.35-community
> * Database Name: xplanner
> * Database Url: jdbc:mysql://localhost/xplanner
> * Database User Name: xplanner
> * Database User Password: ******
> * Database Patch Level: 14
> [hide] App Server
> * Application Server: Apache Tomcat/6.0.26
> * Servlet Version: 2.5
> [hide] Memory
> * Total Memory: 34MB
> * Free Memory: 10MB
> * Used Memory: 24MB
> [hide] System
> * System Date: Apr 12, 2010
> * System Time: 11:41:00 AM
> * Current directory: C:\Program Files\Apache Software Foundation\Tomcat 6.0
> * Java Version: 1.6.0_19
> * Java Vendor: Sun Microsystems Inc.
> * JVM Version: 1.0
> * JVM Vendor: Sun Microsystems Inc.
> * JVM Implementation Version: 16.2-b04
> * Java Runtime: Java(TM) SE Runtime Environment
> * Java VM: Java HotSpot(TM) Client VM
> * User Name: SYSTEM
> * User Timezone: Asia/Calcutta
> * Operating System: Windows XP 5.1
> * OS Architecture: x86
> Request Information
> [hide] General
> * Referer URL: http://172.31.9.38:8080/xplanner/do/view/project?oid=298
> * Locale: en_US
> * URL:
> o Scheme: http
> o Server: 172.31.9.38
> o Port: 8080
> o URI: /xplanner/WEB-INF/jsp/common/unexpectedError.jsp
> + Context Path: /xplanner
> + Servlet Path: /WEB-INF/jsp/common/unexpectedError.jsp
> + Path Info:
> + Query String: fkey=298&returnto=%2Fdo%2Fview%2Fproject%3Foid%3D298&projectId=298
> [hide] Parameters
> * fkey: 298
> * projectId: 298
> * returnto: /do/view/project?oid=298
> [hide] Attributes
> * OpenSessionInViewFilter.FILTERED: true
> * javax.servlet.error.exception: org.apache.jasper.JasperException: jsp:getProperty for bean with name ‘person’. Name was not previously introduced as per JSP.5.3
> * javax.servlet.error.exception_type: class org.apache.jasper.JasperException
> * javax.servlet.error.message: jsp:getProperty for bean with name ‘person’. Name was not previously introduced as per JSP.5.3
> * javax.servlet.error.request_uri: /xplanner/do/view/people
> * javax.servlet.error.servlet_name: XPlannerServlet
> * javax.servlet.error.status_code: 500
> * javax.servlet.forward.context_path: /xplanner
> * javax.servlet.forward.path_info: /WEB-INF/jsp/common/unexpectedError.jsp
> * javax.servlet.forward.query_string: fkey=298&returnto=%2Fdo%2Fview%2Fproject%3Foid%3D298&projectId=298
> * javax.servlet.forward.request_uri: /xplanner/do/view/people
> * javax.servlet.forward.servlet_path: /do
> * org.apache.struts.action.MESSAGE: org.apache.struts.util.PropertyMessageResources@12fae6c
> * org.apache.struts.action.MODULE: org.apache.struts.config.impl.ModuleConfigImpl@1643e4b
> * org.apache.struts.action.mapping.instance: ActionConfig[path=/view/people,parameter=view/people,scope=session,type=com.technoetic.xplanner.actions.DispatchForward
> Version 0.7b7 built 05/24/2006 (rev 1149)
> Contact your Administrator for production help. Any enhancement or bug report should be created following these instructions. Click here to get your system information.