|Sesat > Docs + Support > Development Guidelines|
This page goes through building the Sesat-Kernel. It by itself is not enough to have a functioning search application. A complimentary tutorial exists on building the sesam.com skin.
Check out the latest version of Sesat from the Git repository:
|Building on Windows|
generic.sesam/sesam.com/war/src/main/webapp/WEB-INF/SearchPortal.tld is a symlink to war/src/main/webapp/WEB-INF/SearchPortal.tld which will of course not work in Windows. To fix this run from the sesat-kernel directory:
|java.lang.NullPointerException at com.sun.tools.javac.comp.Check.checkCompatibleConcretes(..)|
When maven is building data-model-javabean-impl it fails with the javac crash:
try checking out sesat-kernel again with a new name (eg sesat-kernel1) and building again. repeat until it works.
|Generating schema files failed due to error: Java heap space|
When maven is building generic.sesam/war it fails with: Increase the heap size by adding parameters to MAVEN_OPTS like (for example)
On a dual 2.2GHz machine w/ 4Gb ram & T10 connection the initial build took 6 and a half minutes 27. Subsequent full rebuilds took 1 minute.
By defining CATALINA_BASE the maven builds automatically deploys all warfiles into CATALINA_BASE/webapps/
In your jboss service instance symlink:
ln -s deploy webapps
and define CATALINA_BASE to point to the service instance directory, eg CATALINA_BASE=$JBOSS_HOME/service/default
(this will be simplified in the future).
This must be manually deployed.
Since it is a jar file in JBoss it can be directly deployed as is.
In Tomcat it must be copied into the tomcat's lib directory.
Caching of files within ROOT.war must be disabled (Sesat-Kernel needs to write files into it's own deployed directory and see these files immediately).
This caching can be turned off with tomcat's context.xml ( http://tomcat.apache.org/tomcat-6.0-doc/config/context.html ) but jboss prevents any application's META-INF/context.xml from taking effect.
Fix this by editing jbossweb.sar/context.xml replacing the line
<Context cookies="true" crossContext="true">
<Context cookies="true" crossContext="true" cachingAllowed="false" cacheMaxSize="0" cacheTTL="0">
If your machine is not natively running unicode you should add the jvm option: -Dfile.encoding=UTF-8
You also have to make a change in the server.xml file as tomcat/jboss runs by default ISO-88591.
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"/>
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
This setting, found in server.xml->Server->Host, cannot be set to false as Sesat requires write access into the deployed application.
Note: You need to run your development tomcat on port 8080! (Or make your own maven development profile for your setup).
Deploy your skins to your container, start your container, and browse http://localhost.com:8080
** !! Every skin deployed, in this case "localhost.com", must have its name added into your hosts file pointing to 127.0.0.1