盲人摸象,JDK就是JAVA的肚脐眼

HsyPrg 2009-02-12 05:26:13
盲人摸象,JDK就是JAVA的肚脐眼
----浅入深出之被JAVA玩弄到午夜销魂


之前,很少和JAVA打交道,虽然她的人气比较旺,但却一直没有认真地与她接触过。这次因为项目里要用到用JAVA编写的WEBSERCICE及JASPER报表,只好硬起头皮在情人节前夕向她发出约会邀请。预料的,她要给我一个下马威:

1.安装IREPORT;

2.安装JDK(IREPORT需要1.4以上版本);

3.加载ORACLE驱动到JDK中,即将oracle for jdbc的驱动文件class12.jar文件放入JDK的LIB目录中并添加在系统环境变量
CLASSPATH中;

4.完成各种类型的IREPORT报表设计,其中里面的SQL语句有些比较复杂,有几个报表通过编写了几个ORACLE数据库函数才得以完
成。(下一步计划将个别函数改成更通用的ORACLE聚合类函数);

5.下载安装了JB9 PERSONAL,兴高采烈地打开,却发现确解失败,只好卸掉;

6.下载安装了JB2008,测试JDK与TOMCAT6.0环境搭配,成功;但打开JB2008,发现速度奇慢,且网上很少参考资料似乎转到JB2008平
台的用户还不多。发现,对于我这个JAVA菜鸟,没办法在JB2008中将约会进行下去;

7.吞掉咬碎的大板牙,开始约会年纪老一点的JB姐姐,熬夜下载安装了JB2006,编写了一个简单的前端访问ORACLE数据库的JSP项
目,测试成功;( 柳暗花明又一家,酒店?)

经验:虽然前面已经将oracle for jdbc驱动加载到了JDK的环境中,但这里还需要将它加载进项目的Required libraires中,
否则会出现编译成功但在打开网页访问数据时出错的情况;
下一步计划尝试完成在TOMCAT连接池加载oracel驱动的配置,这样以后就不需要每一个项目都要单独加载class12.jar了。

8.现在进入主攻阶段,完成JSP程序中对JASPER报表的调用了:
a.将IREPORT目录里的jasperreports-3.0.0.jar加载到项目;
b.调入同事之前写的JSP程序开始编译,提示找不到ReportTools组件,上网搜索在SF.NET中下载了cglib-2.1_3.jar并加载到
项目中,编译成功,但在网页运行时出错,提示找不到WEB_INF目录下的SYSTEM.INI文件;上网搜索相关资料,发现资料奇
少,猜测ReportTools应该是SF.NET上新近开发的一个面对Jasper组件的再封装类。因找不到ReportTools组件搭建环境的相关
资料,只好悲愤作罢;
c.通过参考裴贺先先生写的JasperReport 与iReport 的配置与使用电子书中资,用jasper的HashTable和MAP
写了一个调用报表的方法:
public static byte[] ft_Report() throws Exception
{
try
{
File reportFile = new File("D:\\otherPRG\\irCache\\ft.jasper");
Map parameters = new HashMap();
parameters.put("HostName", new String("广州分店"));
Connection conn = DBMgr.getConnection();
byte[] bytes=JasperRunManager.runReportToPdf(reportFile.getPath(),
parameters,conn);
return bytes;
} catch (Exception ex)
{
ex.printStackTrace();
throw ex;
}

编译成功,但运行时出错,出错在返回PDF byte[]字串时,提示NOTCLASSDEFFOUND错误;
根据错误信息在网上搜索,几经尝试,终于通过下载一个commons-collections-3.2.1.jar并加载到项目中过了
NOTCLASSDEFFOUND错误;但在重编译运行时随后又出现了
Javax.servlet.ServletException: com/lowagie/text/pdf/FontMapper错误。
Faint!此刻真是金鱼翻眼心死如灰,打起阿凡提起精神再上网搜索资料,在下载并加载了iText-2.1.3.jat
和iTextAsian.jar两个组件后,重编译测试,终于看到了动态生成的PDF报表完美地出现在IE浏览器中。
这一刻,疲倦中崭露的欣喜饱含着成就感。

9.到这一步基本完成了jasper加ireport的报表编写及在WEB中调用的工作,下一步计划尝试上面说到的TOMCAT连接池的配置方法及
JASPER报表的另一种更灵法调用方法,即不传CONNECTION而是传入一个包含数据的JAVABEAN来完成报表的生成;

感言:

虽然这两天作为JAVA菜鸟被JB众多的工具及招数玩弄到午夜销魂筋疲力尽,但也总算过了它的第一关,并真正由浅入深对JAVA及JSP来了亲密结合。

总结:
1.面对JAVA以及任何难题,你需要的就是持之以恒不懈追求;
2.JAVA可以类比一个面面俱到啥都想玩啥都想玩好的陪酒女郎,她最需要的是一个强壮的身体以保证她玩骰盅时高负荷量的脑
力工作中还能保持灵活的反应速度以进行正常的自我保护;经过这两天折腾,我已经和胯下那台电脑的状态一样了:
老牛拉稀,志在当机!

...全文
153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
HsyPrg 2009-02-12
  • 打赏
  • 举报
回复
估计过段时间,可以改一下标题:盲人摸象,JDK就是JAVA的小JJ?
HsyPrg 2009-02-12
  • 打赏
  • 举报
回复
我再摸段时间吧,确定一下JAVA的性别?
HsyPrg 2009-02-12
  • 打赏
  • 举报
回复
是吗,我不知道啊,我一直看JAVA都是个漂亮的女人啊,不要说是人妖吧。太。。。
eatingbirdmiemies 2009-02-12
  • 打赏
  • 举报
回复
"作为一个男人,你柴废了."
"也许只是太累了哦~!"
"Java是公的!是公的~~!!这文章真是 基~~~ 情四射"
HinanaiTenshi 2009-02-12
  • 打赏
  • 举报
回复
这真是悲剧啊( - __ - )y一~

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧