陈亮

ChenLiang

Applet 在web项目中显示ClassNotFoundException的解决办法

   最近在做一个web项目,用jfreechart生成图形报表,但图片形式不如窗体形式交互性强,于是考虑用applet嵌入到网页中。在myeclipse里运行正常,但在浏览器上就显示ClassNotFoundException异常。以下是我的解决办法。
   首先用myeclipse创建一个web工程,命名为“myApplet”,创建包为com.test.applet如下图:
导入Jfreechart包jfreechart-1.0.14.jar和jcommon-1.0.17.jar。右键点击工程名,新建applet。





AppletTest.java根据applet模板自动生成了一些代码,找到
public void init() {
        
// Put your code here
}
贴入以下示例代码:
 1     public void init() {
 2         DefaultCategoryDataset dataset = new DefaultCategoryDataset();
 3         dataset.addValue(1.0"Row 1""Column 1");
 4         dataset.addValue(5.0"Row 1""Column 2");
 5         dataset.addValue(3.0"Row 1""Column 3");
 6         dataset.addValue(2.0"Row 2""Column 1");
 7         dataset.addValue(3.0"Row 2""Column 2");
 8         dataset.addValue(2.0"Row 2""Column 3");
 9         JFreeChart chart = ChartFactory.createBarChart(
10         "Bar Chart Demo"// chart title
11         "Category"// domain axis label
12         "Value"// range axis label
13         dataset, // data
14         PlotOrientation.VERTICAL, // orientation
15         true// include legend
16         true// tooltips?
17         false // URLs?
18         );
19         ChartPanel chartPanel = new ChartPanel(chart);
20         chartPanel.setPreferredSize(new Dimension(500270));
21         Container content = getContentPane();
22         content.add(chartPanel);
23     }
这时候第21行getContentPane()会报错,将import java.applet.Applet;改为import javax.swing.JApplet;
类继承自Applet改为继承自JApplet,就不会报错了。
右键Run As-Java Applet执行,可以看到报表图形,显示正常,如下图:
在webroot下新建文件夹applet/com/test/applet/   编译后,将tomcat下的\webapps\myApplet\applet\com\test\applet AppletTest.class文件复制到webroot建立的子目录下,如下图:

修改HTML文件StartPageForAppletTest.html为以下内容

<applet codebase="/myApplet/applet/" 
            code
="com.test.applet.AppletTest.class" 
            archive
="jfreechart-1.0.14.jar,jcommon-1.0.17.jar"
            name
="AppletTest" 
            width
="320" 
            height
="240">
      
      
<!--<param name="p0" value="">
          <param name="p1" value="">
-->
    
</applet>

注意codebase所对应的目录和code所对应的包,archive表示要导入的包,将
jfreechart-1.0.14.jar,jcommon-1.0.17.jar 再复制到webroot目录下,整个工程结构如下图:

运行tomcat,地址栏输入:
http://localhost:8080/myApplet/StartPageForAppletTest.html
就可以看到结果,如下图:


如果觉得在webroot下新建文件夹applet/com/test/applet/  很麻烦,你也可以在src里将做好的applet的java文件打成jar包放入webroot下,相应的修改codebase和archive就可以了。如果有更好的办法,请大家共享。

posted on 2012-08-05 17:40 陈亮 阅读(6867) 评论(1)  编辑  收藏 所属分类: Java

评论

# re: Applet 在web项目中显示ClassNotFoundException的解决办法 2014-02-14 10:55 Judy

博主,你好,我现在正在做相关的内容,你的这篇文章给我很大的帮助,但是我照着你的方法做下来仍然出现NoClassDefFoundError的错误,显示Could not initialize class org.jfree.chart.JFreeChart,这个问题已经困扰我一个礼拜了,在此留言,非常希望你能在看到我的留言后给我帮助,不胜感谢。我的qq是1005434038,我的邮箱是rzhang@ipp.ac.cn。如果你还在经营这个博客,一定要联系我呀  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2014年2月>
2627282930311
2345678
9101112131415
16171819202122
2324252627281
2345678

统计

常用链接

留言簿(1)

文章分类(8)

文章档案(8)

搜索

最新评论