« 统一DataReport的Servlet »
Tools » http://www.anysql.net/tools/webchart-one-java-servlet.html 2009-12-28在此以前的DataReport有三个Java Servlet, 分别管理数据展示, 安全登录及在线编辑三个方面, 集成程度不是很好. 周日下了一天的雪, 就利用了这个时间做了一下程序升级, 将三个Servlet合成了一个统一的Servlet, 当然功能没有减少, 全部集成到数据展示这个Servlet中.
为了集成安全登录和在线编辑功能, 保留了7个页面, 它们是:
syslogin.<FileExtention> -- Process Login
sysloginform.<FileExtention> -- Default Login Page
syspassword.<FileExtention> -- Change Password
syspasswordform.<FileExtention> -- Default Password Page
syslogout.<FileExtention> -- Process Logout
syseditxsl.<FileExtention> -- XSLT for online editor page
sysedit.<FileExtention> -- Online Page Editor Page
其中<FileExtention>在Java Web应用的配置文件中指定, 经此改进后的Web应用配置文件简洁如下:
<?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>
<display-name>WebChart</display-name>
<description>WebChart</description>
<listener>
<listener-class>com.lfx.web.WebChartListener</listener-class>
</listener>
<servlet>
<servlet-name>WebChart</servlet-name>
<servlet-class>com.lfx.web.WebChart2Servlet</servlet-class>
<init-param>
<param-name>FileExtention</param-name>
<param-value>.rhtml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>WebChart</servlet-name>
<url-pattern>*.rhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>900</session-timeout>
</session-config>
</web-app>
如果使用了登录功能, 在升级后需要调整与登录有关的部份代码, 这一次没有做到完全兼容, 这点需要注意.


http://localhost:8080/webchart/global.rhtml
出现错误
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: org/jfree/chart/axis/ValueAxis
com.lfx.web.WebChart2Servlet.doGet(WebChart2Servlet.java:145)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.ClassNotFoundException: org.jfree.chart.axis.ValueAxis
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
com.lfx.web.WebChart2Servlet.doGet(WebChart2Servlet.java:145)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
应该如何处理? 谢谢
需要下载jfreechart的java包文件, 放到Tomcat的lib目录下.