I tried to use xplanner for a long time, but I never succeeded. It seems very simple.
However, a configuration file error in spring is always reported during runtime.
I finally found a solution on the internet today.
It turns out that xplanner is deployed on jdk1.6.
Http://jira.codehaus.org/browse/XPR-391
The error is as follows:
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)
It turns out to be a problem in the spring-beans.xml File
This is the part
<Bean id = "metarepository" class = "com. javasetic. xplanner. domain. repository. metarepositoryimpl">
<Property name = "Repositories">
<Map>
Com. javasetic. xplanner. domain. repository. metarepositoryimpl requires a map,
In spring, org. Apache. commons. Collections. Map. linkedmap is used.
However, org. Apache. commons. Collections. Map. linkedmap implements the java. util. map interface!
Theoretically, it should be okay! However, a conversion error occurred. The cause was not found, but the solution was found!
Set <property name = "repositories"> <map> ...... </Map> </property>
Change
<Property name = "repositories">
<Bean class = "Java. util. hashmap">
<Constructor-Arg>
<Map> ..... </Map>
</Constructor-Arg>
</Bean>
</Property>
That's it!
There are two more questions ....
1. jsp page Error
WEB-INF/JSP/View/notes. jsp
Original: <xplanner: link Page = "/do/delete/Note" onclick = '<% = "Return confirm ('Do you want to delete Note //'" + stringutilities. replacequotationmarks (stringescapeutils. escapejavascript (note. getsubject () + "////'? ') "%>'>
Replace with: <xplanner: link Page = "/do/delete/Note" onclick = '<% = "Return confirm (/'Do you want to delete Note ///'" + stringutilities. replacequotationmarks (stringescapeutils. escapejavascript (note. getsubject () + "/////'? /') "%>'>
WEB-INF/JSP/common/footer. jsp
Original: <Bean: Message key = "footer. message "arg0 =" <% = productionsuppsupportemail %> "arg1 =" <% = issuelink %> "arg2 =" <% = appurl + "/do/systeminfo" %> "/>
Replace with: <Bean: Message key = "footer. message "arg0 =" <% = productionsuppsupportemail %> "arg1 =" <% = issuelink %> "arg2 =" <% = appurl +/"/do/systeminfo/" %> "/>
2. Why can't users log on?
Ant command: ant install. DB. Schema (the command is completely available, but the generated SQL file does not contain semicolons after each sentence)
Then execute the obtained script in the database.
The database and table structure is complete. This is the end of the process. In fact, it is not completed. Some initialization work is required. There is an error in the script provided on the official website. That is because the script of version 0.6 is included in version 0.7. At the same time, it also shows the disadvantages of open source.
The specific initialization script is under the xplanner/WEB-INF/classes/patches directory. Many scripts are basically useless, but patch0002_bootstrap_users_and_permissions. SQL is useful. The main function of this database script is to generate an administrator account and define specific task rules. However, an error will be reported directly when running this official website version (at least in MySQL 5.0 ). Therefore, you need to delete all permission insert operations under the script. The value of a field is missing.
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 );
Another important thing is that the positive field must be set to 1. Otherwise, you will not be able to display the corresponding project. For this purpose, the code is convenient.
Reference
Installation: http://www.8100.cc/space-2034-do-blog-id-7091.html
Modify JSP: http://archive.codehaus.org/lists/org.codehaus.xplanner.scm/msg/20081101164932.CB68214A808A@codehaus01.managed.contegix.com