今天晚上搞了一个晚上的Tomcat上Velocity环境的搭建。头都大了,
还好,总算是搞定了。。但是有些问题还是比较莫名其妙的。
我是根据IBM的developworks的文档搭建的,
首先,在webapps下建立了一个velocity文件夹,用以调试环境,
在velocity下的WEB-INF下,我建立了web.xml跟toolbox.xml两个配置文件,如下
[web.xml]
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>velocityView</servlet-name>
<servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/toolbox.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>velocityView</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
</web-app>
[toolbox.xml]
<?xml version="1.0"?>
<toolbox>
<tool>
<key>date</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
</tool>
<tool>
<key>math</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.MathTool</class>
</tool>
</toolbox>
并且在conf/web.xml中添加了:
<welcome-file>index.vm</< font>welcome-file>
相当于apache中httpd.conf的documentroot,用以自动引导在没有index.html或者index.jsp的情况下直接请求index.vm,这样,软环境算是布置好了。
但是发送request的时候,tomcat却抛出异常了。Servlet.init() for servlet velocityView threw exception纳闷死了,kirin说我是配置文件些错了,把他的webapps/veloapp全部cp给了我,居然能够运行,cmp了一下我们的两个xml文件,完全相同。初步判断是lib里面的jar问题,因为我只解了
velocity-1.4.jar
velocity-dep-1.4.jar
velocity-tools-1.1.jar
velocity-tools-generic-1.1.jar
velocity-tools-view-1.1.jar
这几个基础包进去,但是kirin是把velocity跟velocity-tools两个包里所有的jar解进去了,cp过来,错误依然,中间经历苦痛挣扎n…(省略)当我更改配置n次,重新部署tomcatn次之后,我的ROOT/下的所有webapps居然都能正常工作了,,我对比配置,xml还是那几个xml,jar还是那几个jar,
无语了,只能说,tomcat部署生效太慢了。。
(或者我真的是很菜,不过真的很赞,好歹velocity的环境是起来了,)