Thread: [FreeMarker-user] Problems installing
Generates text that depends on changing data (like dynamic HTML).
Brought to you by:
revusky
From: Antonie C M. <mal...@op...> - 2002-11-13 12:35:03
|
Hi All, I've downloaded freemarker-2.1.1 in the directory where I keep all my=20 downloads (called archive, for what it is worth) and unpacked it to=20 /usr/local. I looked for any installation instructions but found none. = Then=20 I looked at the build.xml file and decided to just call ant from=20 /usr/local/freemarker-2.1.1. I got the following message back: Buildfile: build.xml init: fail.logkit: fail.log4j: BUILD FAILED file:/usr/local/freemarker-2.1.1/build.xml:399: Can't build dist because Log4J classes are not available. That was yesterday. Then I went to the freemarker site and looked for an= y=20 installation instructions. None. I also looked at the archives, but not= hing=20 similar seems to have happened to anyone before. Today the message is: fail.logkit: BUILD FAILED file:/usr/local/freemarker-2.1.1/build.xml:395: Can't build dist because=20 LogKit classes are not available. Then I copied the freemarker examples into my home directory, added=20 servlet.jar from Tomcat and freemarker.jar to may classpath and compiled = all=20 the java files. No problem. Next I copied the directory (called webapps in freemarker but renamed to=20 freeMarker by me) to the Tomcat webapps directory. The index.html file i= s=20 easily found when I do a http://localhost:8080/freeMarker, but trying to=20 follow a link to get one of the example servlets executed yields the=20 following: root cause java.lang.NoClassDefFoundError: freemarker/ext/servlet/FreemarkerServlet =09at java.lang.ClassLoader.defineClass0(Native Method) =09at java.lang.ClassLoader.defineClass(ClassLoader.java:509) As you know, FreemarkerServlet.class is in freemarker.jar which is in the= =20 classpath. It was found for compiling. Any ideas on these two problems? First, do I have to install or is unpac= king=20 enough? Then this second problem with the class not found. I have noticed the properties file in the freemarker-2.1.1 directory. I'm= =20 stuck with the javacc.home and jython.home, but jython seems to be exclud= ed=20 from compilation in the build.xml file. I'd be most grateful for any answers. =20 The Freemarker documentation is written in a very clear, lucid style. =20 Unfortunately, that is not the case for much of IT writing. Thanks, Chris Malan mal...@op... |
From: Attila S. <sze...@fr...> - 2002-11-13 13:50:06
|
----- Original Message ----- From: "Antonie C Malan" <mal...@op...> To: <fre...@li...> Sent: 2002. november 13. 12:01 Subject: [FreeMarker-user] Problems installing > Hi All, > > I've downloaded freemarker-2.1.1 in the directory where I keep all my > downloads (called archive, for what it is worth) and unpacked it to > /usr/local. I looked for any installation instructions but found none. Then > I looked at the build.xml file and decided to just call ant from > /usr/local/freemarker-2.1.1. I got the following message back: > Buildfile: build.xml > > init: > > fail.logkit: > > fail.log4j: > > BUILD FAILED > file:/usr/local/freemarker-2.1.1/build.xml:399: Can't build dist > because Log4J classes are not available. > > Normally, you need not rebuild anything. The lib/freemarker.jar is an up-to-date bundle of compiled classes that you can use right on. If you do want to rebuild, I recommend "ant jar". Calling "ant dist" will require *every* optional package be available - we use "ant dist" to create distribution packages, and want to make sure nothing is missing, so it is a failure to attempt "ant dist" without the optional packages... Actually, it's a bit unfortunate to have "dist" as the default target. My preference would be to have an "info" target be default, that only <echo>-es the names of more meaningful targets... > That was yesterday. Then I went to the freemarker site and looked for any > installation instructions. None. I also looked at the archives, but nothing > similar seems to have happened to anyone before. > > Today the message is: > fail.logkit: > > BUILD FAILED > file:/usr/local/freemarker-2.1.1/build.xml:395: Can't build dist because > LogKit classes are not available. > > Then I copied the freemarker examples into my home directory, added > servlet.jar from Tomcat and freemarker.jar to may classpath and compiled all > the java files. No problem. > > Next I copied the directory (called webapps in freemarker but renamed to > freeMarker by me) to the Tomcat webapps directory. The index.html file is > easily found when I do a http://localhost:8080/freeMarker, but trying to > follow a link to get one of the example servlets executed yields the > following: > > root cause > > java.lang.NoClassDefFoundError: freemarker/ext/servlet/FreemarkerServlet > at java.lang.ClassLoader.defineClass0(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:509) > > As you know, FreemarkerServlet.class is in freemarker.jar which is in the > classpath. It was found for compiling. > Tomcat 3.3 and above ignore your CLASSPATH for class loading. This is actually a wise decision, as CLASSPATH is a system-wide singleton setting and can interfere badly with deployment configurations of various components. Drop freemarker.jar into the webapp's /WEB-INF/lib directory and you should be fine. > Any ideas on these two problems? First, do I have to install or is unpacking > enough? Unpacking should be enough. >Then this second problem with the class not found. > > I have noticed the properties file in the freemarker-2.1.1 directory. I'm > stuck with the javacc.home and jython.home, but jython seems to be excluded > from compilation in the build.xml file. > Try placing freemarker.jar into $TOMCAT_HOME/webapps/freeMarker/WEB-INF/lib Alternatively, running "ant example-webapp" should build the example webapp in the build directory. jython is optional, while JavaCC is mandatory for compiling. However, if you touch the src/freemarker/template/FMParser.java so that it's timestamp is more recent than that of the FMParser.jj, Ant will skip the javacc target. > I'd be most grateful for any answers. > > The Freemarker documentation is written in a very clear, lucid style. > Unfortunately, that is not the case for much of IT writing. > Thanks, we worked hard on that, too (especially Daniel). Hope you'll be up and running with the help I provided. If anything else comes up, don't hesitate to come back with more questions. Cheers, Attila. -- Attila Szegedi home: http://www.szegedi.org > Thanks, > Chris Malan > mal...@op... > > |
From: Daniel D. <dd...@fr...> - 2002-11-13 20:42:57
|
Wednesday, November 13, 2002, 2:49:40 PM, Attila Szegedi wrote: [snip] > Normally, you need not rebuild anything. The lib/freemarker.jar is an > up-to-date bundle of compiled classes that you can use right on. If you do > want to rebuild, I recommend "ant jar". Calling "ant dist" will require > *every* optional package be available - we use "ant dist" to create > distribution packages, and want to make sure nothing is missing, so it is a > failure to attempt "ant dist" without the optional packages... Actually, > it's a bit unfortunate to have "dist" as the default target. My preference > would be to have an "info" target be default, that only <echo>-es the names > of more meaningful targets... [snip] Well, I would prefer "ant jar" as default, but even "ant info" is definitely better than "ant dist". -- Best regards, Daniel Dekany |
From: Daniel D. <dd...@fr...> - 2002-11-13 20:42:58
|
Wednesday, November 13, 2002, 12:01:35 PM, Antonie C Malan wrote: [snip] > That was yesterday. Then I went to the freemarker site and looked for any > installation instructions. None. I also looked at the archives, but nothing > similar seems to have happened to anyone before. [snip] Valid point. We should put a README into the root directory of distro, and describe "Installing FreeMarker" and "Building Freemarker" Even if no real installation is required (just drop freemarker.jar somewhere where the classloader will find that). -- Best regards, Daniel Dekany |