Documentation‎ > ‎

Frequently Asked Questions

Keep the questions coming ! See also Corendal Directory Frequently Asked Questions for questions specific to Corendal Directory. While all questions below were asked for specific Corendal applications, their answers apply to all applications.

I get a "The servlets named [DynamicDatabaseHTTPServlet] and [DynamicDatabaseHTTPServlet] are both mapped to the url-pattern [/materialrequest] which is not permitted" error

Tomcat now enforces stricter web.xml formatting rules. Remove in the web.xml the duplicate entries. Example:

<servlet-mapping>
<servlet-name>DynamicDatabaseHTTPServlet</servlet-name>
<url-pattern>/materialrequest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DynamicDatabaseHTTPServlet</servlet-name>
<url-pattern>/materialrequest/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>DynamicDatabaseHTTPServlet</servlet-name>
<url-pattern>/materialrequest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DynamicDatabaseHTTPServlet</servlet-name>
<url-pattern>/materialrequest/*</url-pattern>
</servlet-mapping>



should be

<servlet-mapping>
<servlet-name>DynamicDatabaseHTTPServlet</servlet-name>
<url-pattern>/materialrequest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DynamicDatabaseHTTPServlet</servlet-name>
<url-pattern>/materialrequest/*</url-pattern>
</servlet-mapping>



I get an error org.apache.velocity - Could not create file appender 'velocity.log'java.io.FileNotFoundException: velocity.log (Permission denied)

Change the configs/directorydevconfig/properties/velocity.properties file by adding this line:

runtime.log = /tmp/velocity.log



I get an ERROR [http-8080-1] com.corendal.netapps.framework.core.readdatabeans.AbstractEntity - org.xmldb.api.base.XMLDBException: org.exist.EXistException: file not found: /var/lib/tomcat6/webapps/directory/WEB-INF/configs/directorydevconfig/exist/servlet/data/symbols.dbx

Make sure your directory /webapps/directory/WEB-INF/configs/directorydevconfig/exist is writable.

I get an ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type = innodb' at line 7 when populating the MySQL database

MySQL has changed the SQL syntax used to create tables. In all SQL files with a name starting with the word "create", replace TYPE with ENGINE.

Can Corendal applications run on Java 6.x and/or Tomcat 6.x ?

Yes. There should be no compatibility issues.


Can Corendal applications run on JBOSS ?


Yes ! Here are instructions I have received regarding a JBOSS installation:

Put "directory" in $PATH_TO_JBOSS/server/default/deploy/directory.war

Modify the cron jobs so they get the correct paths to libraries. Specifically:

TOMCAT_HOME="/usr/share/tomcat5.5" # On debian, this is: libtomcat5.5-java

Alter all the lines "CLASSPATH=$CLASSPATH:$CATALINA_HOME/common*" to use "TOMCAT_HOME" instead.

Manually set "DIRECTORY_APP_HOME" to "$PATH_TO_JBOSS/server/default/deploy/directory.war"


Do you recommend hosting Corendal applications on Linux or Windows ?

The installation of Corendal applications is virtually identical for all platforms.

In my experience, there are often issues getting MySQL to install correctly on Linux, and each Linux distribution often comes with its own Java flavor that sometimes isn't the standard Java from Sun. This is however nothing terribly complicated that a regular Linux admin cannot address.

If you want to just preview one of the Corendal applications before deciding whether to use it in production, I recommend a Windows installation. For production, I personally prefer Linux because of the stability of the operating system.
 
The logs show a javax.naming.AuthenticationException when I use Corendal Directory.
 
These exceptions are triggered by the domain controller when Active Directory refuses a connection with the username/password association used by Corendal Directory. The error number explaining the connection refusal is the number after the keyword "data". In the example below, this is the error number 775:
 
javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308:
LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 775,
vece&#0;]
 
Here are common error numbers and their meanings:
 
525 user not found 
52e invalid credentials 
530 not permitted to logon at this time
531 not permitted to logon at this workstation
532 password expired 
533 account disabled 
701 account expired 
773 user must reset password 
775 user account locked
 
 
I get a "Access denied for user 'geog_user'@'localhost' (using password: YES)" error. What did I do wrong ?
 
If you changed the passwords in the MySQL GRANT PRIVILEGES commands, you need to reflect those changes in the hibernate.cfg.xml files as well.
 
If you are running on Linux, make sure you executed the MySQL GRANT PRIVILEGES commands for every variation of the machine name where you application server is hosted, as found in /etc/hosts.
 

Corendal Directory has been configured according to instructions in INSTALL.html file. However, when I try to open http://localhost:8080/directory/home, I get a servlet error in com.corendal.netapps.framework.runtime.servlets.AbstractHTTPServlet.

 
Apache Tomcat wasn't able to load the XML configuration in the "setups" folder at startup. I would check the catalina.out file or stdout.log file of Tomcat for error messages. Remember to respect the XML format in each XML file. A common mistake is to misuse &, which is a reserved character in XML.
 


I downloaded and followed the setup documentation (modifying as needed for my installation) yet, I cannot start the webapp. When I go to the URL, the site tries to redirect me to localhost and nothing shows up in the browser window.

 
You need to edit the file setups\applications.xml and replace localhost with myserver.mycompany.com, it should have lines like this in it:

<property name="framework.core.webapp.protocol">
http
</property>
<property name="framework.core.webapp.host">
myserver.mycompany.com
</property>
<property name="framework.core.webapp.port">8080</property>
<property name="framework.core.webapp.folder">
/directory
</property>
 
To know whether the application is redirecting to an incorrect URL, use a HTTP tracing tool, such as ieHTTPHeaders for Internet Explorer. It will show the address being redirected to.
 
 
What problems will I encounter if I deploy Corendal Wiki in a hosted environment that I do not fully control ? 
 
Make sure that your hosting company allows the web application to create temp files. Some hosts don't allow temp files, or only temp files in a particular location.
 
By default, Corendal Directory creates temp files at startup in the temp directory of the application server, for example $CATALINA_HOME/temp on Unix and C:\Temp on Windows, as designated by the java.io.tmpdir property.
 
If you do not control the value of this property and temporary files must be created in a specific directory, you'll need to customize the mainTempDirectory static variable in the code of the com.corendal.netapps.framework.configuration.utils.FileUtil class.
 
What do I need to do if I don't want to use the default database accounts and passwords (such as diry_user) ?
 
You'll need to update each hibernate.cfg.xml file to reflect these changes.
 
Can I use one database instead of six ?
 
All Corendal applications split the data into several databases, but you can configure them to use one database.
 
You just need to create all tables and sequences in that unique database, and remove all directories under "datasources\hibernate" except the one named "defaultshared".
 
 
How do I differentiate roles in Corendal Directory ? For example, how do I indicate who is an "Administrator" and who is a member of the "service desk" ?
 
There is a screen in the "Admin" menu where you can assign roles to users. This is the "System Accounts and Groups Monitor" screen. This screen is common to all Corendal web applications. You can assign roles account per account or you can assign roles to all members of a group.
 
 
How do I customize the link to www.corendal.com in each page ?
 
Find the http://www.corendal.com string in the pages.xml file, edit this string, save this file and restart Tomcat.
 
Same answer for changing the online help texts text that say "Put your content here". Edit the messages.xml file, save this file and restart Tomcat.
 
 
Which browsers are compatible with Corendal Directory ?
 
Short anwer: all of them. Long answer: Corendal Directory and all Corendal applications have been tested with Internet Explorer 5.5, 6.0, 7.0, 8.0, Firefox 1.0, Firefox 2.0 and Firefox 3.0, Opera 7.0, Opera 8.0 and Opera 9.0, even Safari.
 
The implementation makes a very conservative use of HTML and harldy uses any Javascript, making it compatible with virtually any browser. Blackberry users have special status, the user interface degrades gracefully for them. The only exception to this rule is Corendal Wiki as it uses Javascript heavily for the Rich Text Editor.

The automatic authentication (also called NTLM authentication) is only accessible to Internet Explorer users. 

Where are the JSP files in the home directory ?

Corendal applications are built around a custom framework (called Corendal Framework) that doesn't use Java Server Pages. A "pure" servlet implementation is used instead. The MVC (Model-View-Controller) pattern is followed, the "View/User Interface" is done with Velocity templates outside of the Java code.
 

If I am using http, are the passwords sent like plaintext over the network ?

If you didn't enable the NTLM authentication, users login in will have their password sent in clear text between the browser/client and the server. HTTP is not an encrypted protocol.
 

I would like to use https, is it just the matter of configuring Tomcat to use SSL for Corendal or are there any other steps necessary?

You could use Apache HTTPD with SSL to act as a proxy, or configure Tomcat to use SSL. You'll need to update the applications.xml file with the right protocol (https instead of http) once your SSL setup is complete.
 
<property name="framework.core.webapp.protocol">https</property>
 
The port number specified in applications.xml should be 80 when SSL is used, even though the SSL protocol actually uses port 443.
 
<property name="framework.core.webapp.port">80</property>
 
Thanks to Vinod Kumar Dorairaj for contributing to this solution !
 
Is it possible to use hashed password value for Active Directory service account in ldapsource.xml file?

There is no provision in the system to use hashed passwords in ldapsource.xml. This feature would not be too complicated to implement. If you have programming skills, the fastest way to do this edit the "getProperties" method in the file  AbstractLDAPSourceHandler.java in the "com.corendal.netapps.framework.configuration.confighandlers" package.
 

Is it be possible to connect to different domain controllers instead of the one defined in configuration file?

Try this:

  - copy the directorydevconfig folder, and name the copy directorydevconfigalternate, place it in the configs folder. You will only need to keep in that directorydevconfigalternate folder the files than are different than the files in directorydevconfig (in your case the ldapsource.xml files)

  - edit the ldapsource.xml files of that copy with the address of your alternate active directory server

  - edit the currentconfig.xml, adding another entry, such as:
 
<?xml version="1.0" encoding="UTF-8"?>
<!-- Version: $Id: currentconfig.xml,v 1.37 2008/01/18 21:22:06 tdanard Exp $ -->
<current-config xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="./currentconfig.xsd">
 <current-config-name>Directory</current-config-name>
 <build>$Name:  $</build>
 <folder>directorydevconfig</folder>
 <current-config-variants>
  <prompt>Server</prompt>
  <title>
   Location of the server where the directory is hosted
  </title>
  <button>Customizes this site for the selected server</button>
  <current-config-variant standalone-flag="N" enabled-flag="Y"
   default-flag="Y">
   <name>Main</name>
   <description>For Main</description>
   <prefix>/main</prefix>
   <variant-folder>directorydevconfig</variant-folder>
  </current-config-variant>
  <current-config-variant standalone-flag="N" enabled-flag="Y"
   default-flag="N">
   <name>Alternate</name>
   <description>For Alternate</description>
   <prefix>/alternate</prefix>
   <variant-folder>directorydevconfigalternate</variant-folder>
  </current-config-variant>
 </current-config-variants>
</current-config>


  - restart Tomcat. You can access each domain controller using a different address: http://localhost:8080/directory/home/main/ and http://localhost:8080/directory/home/alternate/
 

What info can be used in the preprocessor.properties file ?

 
Only the fields listed can be used in the preprocessor.properties file.
 
At startup, any string in the configuration files of the type #ABC123# will be replaced by the value associated with the field ABC123. The goal of the preprocessor.properties file is to avoid having to perform mass updates of configuration files during customizations.
 

How can I change the text displayed in the help section ?

 
No text displayed on a screen is hard-coded. Virtually every bit of text is referenced in XML file in the setups directory.
 
You would need to edit the "messages.xml" to change the content of a help page, "fields.xml" to change the name of a field, "pages.xml" to change the name of a page, "blocks.xml" to change the name of a block/tab, "menus.xml" to change the name of a menu item, etc.


How do I remove the "Edit Photo" feature in Corendal Directory ?

 
All Corendal applications use the page/block concept. Each page is made of blocks, blocks can easily be added or removed by editing the setups/pages.xml file.
 
The id of the current page is displayed on top of the HTML source, and corresponds to the id of a page record in the setups/pages.xml file.
 
All blocks that are displayed are referenced in the setups/blocks.xml file. The "Edit Photo" blocks have the ids CORE-BLCK-39 (for Edit My Photo) and HLPD-BLCK-62 (for Edit Any Photo). Just remove the references to these two blocks in the pages.xml file and restart Tomcat.
 
This block placement technique applies to all Corendal applications.