Goingmm

  BlogJava :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  82 随笔 :: 15 文章 :: 452 评论 :: 0 Trackbacks

#

First, Happy valentine's day

地点:中国人民建设银行成都分行
时间:2006年2月14日

现场
    情人节:09:30 - 11:30    第一会议室
    情人节:14:30 - 17:30    第一会议室

在此
    特别感谢SCS两年来对我的培养
    祝福SCS的全体同事“Happy valentine's day”
    
Goingmm 
posted @ 2006-02-14 13:54 Goingmm 阅读(264) | 评论 (5)编辑 收藏


tomcat.gif     jakarta-banner.gif

Key words
Name:     Apache Tomcat Version 5.5.9                                            
Release:  v 1.25 2005/01/19 20:30:26
JDK:        1.4.2 OR 5.0


背景:
    JDK5.0 + Tomcat 5.5.9
    去年,因为尝鲜一直使用JDK5.0。使用这个搭配也从来没有遇到问题

    JDK1.4.2 + Tomcat 5.5.9
    今年拿到新电脑后,现在的开发环境很依赖环境变量的设置。出于谨慎我还是选择了使用JDK1.4.2
    昨天晚上无聊的装上Tomcat 5.5.9玩
    
    1)JRE选择JDK1.4.2 安装完成
    2)用Monitor Tomcat 启动Tomcat
    3)打开
http://127.0.0.1:8080/
    4)找不到服务器
    5)感觉+漫骂... 真他NND的奇怪了 疑惑什么地方弄错了

改装经历:
    咱,不能丢脸的被这只猫猫忽悠吧!
    于是,很不耐烦的找出这个版本的RELEASE-NOTES(坏习惯-不太喜欢看说明)

   ==================
    Dependency Changes:
    ==================
    Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires
    configuration to run on J2SE 1.4.  Make sure to read the "RUNNING.txt" 
    file in this directory if you are using J2SE 1.4.

    In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling
    JSP pages.  This means you no longer need to have the complete
    Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment
    (JRE) is sufficient.  The Eclipse JDT Java compiler is bundled with the 
    binary Tomcat distributions.  Tomcat can also be configured to use the
    compiler from the JDK to compile JSPs, or any other Java compiler supported 
    by Apache Ant.
    
     Installing the compatibility package will add the following to the list, which are
     needed when running on J2SE 1.4:
     * jmx.jar (Java Management Extensions API 1.2 or later)
     * xercesImpl.jar (Xerces XML Parser, version 2.6.2 or later)

     呵呵... 这里解释的很清楚
     Ø Tomcat 5.5 只默认支持J2SE 5.0 and later
     Ø Tomcat 5.5  在编译JSP上做出的改变
    
     但是,TNND后面一段关于在JDK1.4上配置运行的描述,实在是太迷糊人了[根本没有说清楚]
     根据他表达的意思我试过很多方法
     Ø 看来想要“不妥协”的使用,唯有“改装”。有了改装的初步想法
     Ø 在我的机器里面找看有没有现成的jar包 发现了几个相似的包 测试不行
     Ø 到官方网站[http://tomcat.apache.org/download-55.cgi]把所有的包都down下来看
     Ø 最后发现一个像摸像样的包[apache-tomcat-5.5.15-compat]但是和我现在的Tomcat版本不一样
     Ø 抱着试一下的心态。解压缩出来两个文件夹 ① bin ②common 用他们覆盖安装目录下的文件夹
     Ø 用Monitor Tomcat 启动Tomcat
     Ø 打开
http://127.0.0.1:8080/ 看到了熟悉的猫猫 
     Ø Bingo,记录下这次“改装”的经历

经验总结:
      其实,这只是我们平时遇到的很小很小的问题(菜鸟问题)
      问:为什么要总结呢?为什么还用小题大作写成blog呢?
      结:使用任何产品,用心看看说明文档 是非常有必要的。尊重产品工作者的劳动,
               自己也能少很多麻烦
     
顺便... 链接其他:
      关于Tomcat各个版本的运行速度。
emu 哥哥在他最近的blog中给出了测试结果
      个人感觉
      Ø  Tomcat 越新的版本使用越方便[基本上不需要单独配置]
      Ø  Tomcat 不为我们熟悉的功能也越来越多[平时没用到的也没去关注过]
      Ø  Tomcat  运行速度的测试结果,我还是比较疑惑

   Goingmm  2006-02-12

posted @ 2006-02-12 18:36 Goingmm 阅读(790) | 评论 (3)编辑 收藏

  Ø 280公里意味着什么?

             高速公路2.5小时车程,火车3.5小时行程

     Ø 280公里发生了什么?

             两次/年 片刻停泊 留下的唯有牵挂

     Ø 280公里给了我什么?

             时间换来单薄生存 享受的唯有牵挂

    

     初八是个好日子 书上说:“七不出门,八不归家”

     又要出发了 离家的感觉是牵挂

     爸妈牵挂280公里外的我 平平安安 有获

     我牵挂280公里外的父母 身体健康 发财

    

     南充 [ 一个“变化”很大的城市 ]

     说“浮华”不敢  我不敢靠“浅尝”的数字来诽谤

     说“作践”不愿  我不愿靠“批露”的声音来出名

     说“独特”不能  我不能靠“断言”的措辞来浮夸

     说“自清”不想  我不想靠“忘根”的情愫开解脱

    

     原本以为,可以把这里的“精彩”和大家分享

     调皮的光标‘怪异’的摆下这个‘怪异’的标题

     我能想到的,只有明天280公里远去的牵挂

 

     送给

     每一个即将离开父母去找寻梦想的朋友

     或许,你们的牵挂是2800公里 28000公里

    

     临走时,别忘了

     用心摸摸爸爸的皱纹

     悄悄数数妈妈的白发

    

    

     Goingmm Subscription  2006-2-5 凌晨

    

posted @ 2006-02-05 02:04 Goingmm 阅读(406) | 评论 (6)编辑 收藏


凌晨,看到一个挺有趣的讨论[JavaEye]。2006年,Java界的主题将是什么?

两年的开发经历,对新技术的追逐与否我不敢妄自评论。茶余饭后无聊的思考
基础显然重要,当新事物能为我所用的时候,能快速应对,足以
不可否认,新技术的出现,往往能成就一批热心追逐的人[只是少部分,大部分属于随波逐流的困惑]

2000年 应用服务器年 
       这一年,Java应用服务器的需求成为各大公司的最大利益。谁不希望用“业界标准”来标榜自己呢!
■  BEA公司的繁荣从此开始

2001年 EJB年
       这一年,EJB2.0发布,整个Java业界为之震动,“牵强”的分布式架构,让EJB成了魔术词汇
■  EJB成了高价企业软件的“文凭”。懂不懂EJB成为能不能拿到高薪的关键

2002年 设计模式年
       这一年,大家开始发现EJB真TNND难用,开始发现Java开发需要遵循某种规则,设计模式开始流行,
       J2EE核心模式也应运而生
■   jdon网站借着设计模式的热点一举成名

2003年 Hibernate年
       这一年,大家开始否定EJB,开始采用O/R Mapping,Hibernate迅速流行
■  JavaEye由于颇有预见性的推广普及Hibernate而成为国内Java社区的亮点

2004年 Spring年 
       这一年,EJB3规范和JDO2规范忙着打架,但是真正的主角是Spring,Spring携着IoC和AOP迅速占领J2EE的眼球.
■  《Without EJB》 成为大家背弃EJB2.0的宣言书

2005年 AJAX年
       这一年,大部分时间大家都在反思,或者是学习合适的应用程序架构。伴随着Google的Gmail,
       Google Maps等一系列AJAX应用,一个古老的XMLHTTP组件咸鱼翻身。这个冬天终于找到了主题-AJAX
■  骄傲的程序员回头关注“用户体验”

2006年 XX年?
       这一年,除了成名已久的EJB3.0值得期待,我们还能看到出人意料的新名词吗?
       这一年,将会是更深刻的反思年吗?[用已有的技术集合更完美的“用户体验”]
       这一年,我们将何去何从,我也说不清楚
       你呢?

 Goingmm  2006-02-03

posted @ 2006-02-03 13:08 Goingmm 阅读(439) | 评论 (8)编辑 收藏


    2006年1月25日早上9点起床
    收拾了几件换洗的衣服准备回家
    回家的心情是急切的,关上门
    刚走出几步
    又摸出钥匙串 回去扫视着整个房间
   
    是不舍?
    是不情愿?
    是不放心?

    好像感觉有什么东西落下了
    似乎惦念着还有什么事没有做完
   
    5分钟后没有任何发现 倔强的离开了
    在离开的的士上还在猜疑
    永远离别一个城市也不曾有过的感觉
   
    大年三十
    陪爸爸妈妈看完春节晚会
    邀集一伙朋友准备出去“通宵”
    因为今年是本命年
    大伙都建议上庙去求个 [ 2006 平安 ]
   
   坐车+走路 1小时就到了
   见了 如来佛 观音菩萨 十八罗汉 财神爷 ...
   祈祷的心是诚实的
   面对恩赐,永不满足的心 感觉太乱

   大年初二
   一伙朋友坐船出去 游嘉陵江
   目的地是 
   50多年前“毛主席的共产主义作品” -- 农村合作社
   看着 破陋的 两排男女宿舍+两间夫妻房
    听着  89岁老人淳朴的歌声“社会主义好”
    喝着 所谓的“大锅饭”(一大锅红薯稀饭)
    
    50  年前的“共产主义”    
    500年后的“共产主义”
    
    希望 至少能像庙里的菩萨
    给我一点虔诚的勇气 

    心突然...
   
    Goingmm  2006-01-30
     
   

posted @ 2006-01-30 21:55 Goingmm 阅读(414) | 评论 (7)编辑 收藏

 

BLOGJAVA 服务器居然是这个配置

Windows Server 2003 Microsoft-IIS/6.0 15-Jan-2006 61.147.119.205  CHINANET jiangsu province yangzhou city network

这个结果应该很准确,试过SOHU的服务器。然后找MIKE确认,的确没错

posted @ 2006-01-19 10:21 Goingmm 阅读(305) | 评论 (3)编辑 收藏


    今天,在咖啡馆里碰到几个老朋友,由于工作关系,对电信行业也有些许了解。于是问起我关于3G的问题。正好同桌有好多非通信行业人士,听到我们谈这个话题非常的有意思,纷纷发问。于是,简单的回答了一些问题,相信可以给大多数不了解3G的普通用户可以给予一定的说明。在此写将出来,以问答形式,给即将到来的3G时代进行一点普及推广。

 

问:3G是目前最热门的话题,到底3G服务与目前普遍使用的GSM和GPRS应用有何不同?

答:有两个主要不同的地方:3G可提供更多的视频服务。虽然GPRS也可提供视像上的享受,但却不能提供好的视像品质。就好比如您要通过手机看直播串流,这是较难的,而3G就能。通过3G,用户可体验到不同的移动应用。

第二点是移动下载的速率比GPRS更好。比如您要下载一首完整的歌曲,一首歌约1.5MB。GPRS是可以下载的,但却需要很长的时间,如果您使用3G服务,约花上30秒就可完成整首的歌曲下载。

另外一点就是在2G服务应用上做不到的,但3G服务却能做到的视像通话,就类似2G的声音通话,我们可通过手机面对面的通话。

还有一个不同是老百姓不容易接受或者不容易理解的,就是3G可以提供更加清晰的语音服务。由于2G的语音质量已经很不错了,所以,这个答案只能是在3G上马之后进行细微的比较才能得出。
    当然,3G和2G最主要的就是带宽升级带来的应用。多种种应用应该不仅仅限于手机,笔记本和PDA用户也应该能享受到3G带来的便利
    

问:移动用户可从3G服务中获得怎样的益处?

答:我把3G所带来的益处规分为三种。

一是移动用户可通过3G服务进行视像通话,无论您在哪里,您都可看到对方的表情进行通话。

二是通过3G的高速速率可更快的进入移动平台。这是之前的2G服务所满足不到用户的关键。高速率的3G可让您更快的进入您要的应用内容,例如进行下载工作时,之前的GPRS只能够跑115kbps,但3G却拥有更好的速率素质。

三是提供更广系列的3G应用内容。

 

问:您刚才一直在提3G可进行视像通话。是否可以说,视像通话就是3G的杀手应用?

答:不,不能这么说。我认为目前没有任何的3G杀手应用出现,当然希望是有的,但其实3G并不一定只有单一的杀手应用,或许有很多种。至于视像通话其实有一些不足,比如,当您进行视像通话,您的脸面对着镜头,这是进行视像通话时令人感到沉重的地方,有些人可能就不喜欢。这和单独的用手机照相的感觉是不一样的。

当然,我相信在3G服务之下,视像通话应用将是广受用户欢迎的3G应用,这一趋势将在世界各地流行开来。另外,一旦我国上马3G,视像通话将可能成为运营商宣传的重点,用户也就容易了解,相信视像通话将是推动3G服务的主要关键应用之一。

 

问:WIMAX也是无线技术之一,甚至有人说它是3.5G。您认为WIMAX与3G服务有什么不同?

答:WIMAX是一项新的技术,它充满了市场潜能。WIMAX与3G同时在讲述着宽频,但两者开始的角度是有所不同的。WIMAX讲的是宽频技术,谈的是在家或是公共领域的无线应用,涉及到移动宽频的解决方案。3G从一开始,就完全的从移动手机的角度开始或出发。

 

问:那些用户可能成为3G的主要用户?

答:有两种目标用户群。

第一种是专业的移动用户。专业移动用户可通过3G的视频通话与伙伴通话,快速的网络速率满足他们的需求。快速率的3G数码卡可以连接到他们笔记电脑,进入互联网浏览,他们不再需要电话线或是其他的连接线。我们也将他们叫做高端用户。

第二种是20岁至30岁之间的年轻人,他们视3G服务能为他们提供更多的娱乐,这将成为运营商的主要目标群。

 

问:您觉得3G服务上马后,现有的2G/2.5G用户是否会马上转去使用3G,或者说,那些因素决定用户向3G转移?

答:我想主要有三个因素。

第一是市场上的3G手机价格刚开始应该很贵。据我猜测,3G启动初期在市场上的3G手机售价大多数将在三千以上,年轻用户群对这样的手机售价较难以消化。

二是3G服务的覆盖率不够。任何运营商得到3G牌照之后都不可能全国性建网,仅仅会在部分大城市先行建网,到2008年以后,绝大部分省、地市两级城市才可能达到满意的覆盖率。这和中国联通实施建设CDMA网络以及CDMA用户增长情况是一致的。

三就是用户对3G服务的了解到底有多少?目前知道3G的人群其实非常的少,上马3G之后,需要运营商以及SP们大力宣传3G相关业务,才有可能让更多的老百姓了解3G业务,比如前面提到的视像通话很可能是老百姓最早能接受或者了解到的业务。其实3G不仅是这项应用,而是有更快的下载速率,为用户提供更多的视频内容,或是更快的进入互联网等益处,提供更多的娱乐。当然,我这里要强调的是,网络的表现也是占有很大的因素,因此哪个运营商的网络质量高,覆盖率高,将可能吸引更多的用户。

 

问:看目前的情形,我国很有可能出现多家3G运营商,那么,你认为,运营商应该用什么特点来吸引用户选择自己的3G服务?

答:我想,除了前面说的哪个运营商的网络质量高,覆盖率高,就可能吸引更多的用户之外,关键是看哪个运营商提供的应用内容供应比竞争对手的应用内容多,譬如有多少个现场直播的电视频道、多少种的娱乐选择、多少种的视频录像下载、多少种的铃声选择、多少种的游戏下载等。另外,一些新兴业务如查看交通状况、移动博客、数据卡等服务是否齐全等。

另一方就是谁的3G服务收费方面较让大众负担得起,就好像您要进行视像通话,收费是与2G的声音通话收费一致,收费大众化。这也许是最影响用户采用3G的关键因素了。

 

问:您认为2G服务什么时候退役,什么时候全面转向使用3G?

答:我认为这需要一个较长的时间段,从今年年初算起,2G起码还有7至10年的生命期,3G上马之后,应该有个3年左右的慢热期,我想到2010年之后,3G用户将出现较高幅度的增长。


作者版权:http://blog.sina.com.cn/u/5560fa9f010001y5


2006-01-17



posted @ 2006-01-17 10:51 Goingmm 阅读(321) | 评论 (3)编辑 收藏



 Wallop  金山词霸2005给我的解释是:
  -------------------------------------------------------------------------
   vi.
   乱窜, 猛冲, (车等)颠簸, 沸腾作用
   vt.
   猛击, 击溃
   n.
   重击, 冲击力, 乐趣
 --------------------------------------------------------------------------

 Wallop背景:
       Wallop还有一个中文名字--“我老婆”
       Wallop是微软研究院社会性计算组(Social Computing Group)的一个研究项目,用于探索研究人们如何分享媒介,并在社会性网络(SNS)的环境下进行对话和交流。其核心思想便是分享。通过构建一个虚拟的网络平台,提供人与人之间的相互交流,相互交换联系方式、Blog个人网络日志、以及个人 照片、音乐等,以致力于更加接近现实的人际关系。
       Wallop的项目领导者是 一位叫Lili.Cheng的华裔女子。从2003年开始,就开始在微软领导这个项目。
       Wallop可以说是一个真正意义上的RIA,UI全由Flash制作而成。以完美用户体验为前提。界面清新,风格独特。了解RIA已经有一段时间。现在有这么一个完美的演示平台。感觉真是爽
       
关于注册:
      Wallop现在处于小范围的测试阶段。所以微软还没有提供公开注册。但是可以通过朋友邀请,需要的朋友可以留下Email地址。如果你想去抢注自己心仪的ID号,不要着急,Wallop提供的是邮箱地址登陆,没有ID给你抢。

     Google推出的Orkut也是类似的东东,想注册一个,没有找到邀请。如果有体验过的朋友,希望推荐来玩玩

真实图片:
     Wallop.JPG
     


Goingmm  2005-01-09

posted @ 2006-01-09 13:58 Goingmm 阅读(572) | 评论 (13)编辑 收藏

     
       dog.jpg  狗一般的快乐...

   2006-1-1 1530 打开眼睛,撕开被子,立起枕头,挺冷的,想躺下继续睡。 
   2006是我的本命年,迷信吗?还有点心虚。理性吧!有准备承受更大的压力。

   新年的第一天,你是怎么过的?有为自己在新的一年做计划吗?有和朋友一起出去大吃一顿庆祝吗?有像我一样睡昏了头的吗?看看我新年第一天的流水帐吧!
  
什么都还没有做,心里有点怪怪的。为什么会有点发了慌的感觉。因为什么都没有做发慌吗?可能是肚子太饿了。 
   找到一家象样的中餐馆子。要了一盘“锅盔回锅”,还特意叫老板上了一碟红油泡菜。整碗白米干饭。很不错哦。
  
吃饱回家看会电视(湖南电视台的新春晚会),TNND翻来覆去都是那几个“超女”没看头。
  
点支烟,摸出电脑准备听会音乐,翻翻过去一年的照片。让回忆在“小资”中升华。突然记起前几天DownWTP1.0。最近在翻看一些经典电影。一直都没时间玩玩。于是打开玩,等我再次感觉肚子饿已经是晚上2220
  
对了,MIKE明天就要去SOHU了。临别前,给他电话送别。那娃居然在打麻将。不晓得听懂我送别的良苦用心没有。愿他一路顺风。新年新成绩吧!
  
放下电话,煮碗面吃,又看见昨天泡的衣服都还没有洗。
  
洗衣服是一件很有趣的事情。平时很少有机会运动,这时候可以凑合着活动一下。平时绷紧的神经挺累的。这时候,可以很享受的哼唱着散碎的歌曲。忧郁了,可以试着在发泄中思考。享受着局外人的宁静
  
工作快两年了,自己问过自己一个问题,说忙也好,颓废也吧。一直在回避,怕自己知道答案后会后悔当初。会逃避现实生活,会不知所措偏偏在这时候想起“为什么想要做一个程序员”。
   
当初可能有一种不服输的想法。计算机毕业总能混碗吃吧。靠自己的双手生存的感觉真的不错。但是这种感觉很短暂。
  
晚上的公交车窗外,灯红酒绿。而我们只属于浮华背后的看客。躲在车窗后面的我们,窥视着,YY着。或许有着无数的感慨和畅想。或许回味着有时候也加入其中。哽咽着洗脚水味的洋酒。带着酒意,舞动在模糊迷人的身体背后。那是在发泄,那是在饥渴的释放 那是一只披着羊皮的狼。
  
因为这里没有欺骗,没有勾心斗角,没有讨价还价,很单纯,单纯到你可以没有其他的任何生活方式。在这里你可以找到攻城拔寨的快感。可以享受与世隔绝的宁静。怀揣骨子里面的清高。或许还能享受在别人眼中的高手身份吧!
  
大多数程序员都会经历 新手学习;逐渐成熟;自暴自弃,浮躁得异想天开;走向成熟或者是不知天高地厚得狂妄。
  
很难定义自己现在所处的阶段。就算在浮躁期吧。有了一点小小的成就感以后,就会变的浮躁,开始去思考,为什么做程序员,现在该拿多少薪水,梦想的实物该拿什么去换
     
我不敢奢望谁能去帮我承担这种浮躁光标闪到这里,变得机械了。突然没言语
  
知道自己需要有一段长时间的休息。去忘掉Source Code,淡化网络给我们带来的便捷。开始打算着,选择离开一段时间。离开Office,离开友情深深的团队。离开这块“净土”去瞧瞧陌生的精彩。回到阔别已久的老家追忆童年。或许生活的不堪重负会让我减却浮躁。或许该把竞技的舞台留给更多饥渴的勇士。这样对大家都好。

   都说,新的一年应该给自己一个新的计划。计划如果有Scope的话。可以把他分成三种

n    Request 类型的 [每一次记得了,看看计划,傻笑一下,干一次]

n    Session 类型的 [在一个阶段给自己的计划,可以按计划坚持干完]

n    持久    类型的 [给自己一个长期的计划,不懈的努力]

面对计划,我就属于第一种,哈哈!给大家说一段笑话吧。大学的时候计划考英语四级,买了本单词来背。前些天再次想起,翻出来看的时候发现结果才看到“E”。看了两天又丢一边了。

所以,有时候我不太喜欢过场式的给自己计划。做好每一天,让“鲜为人知的理想”离我越来越近就好。今天打算为浮躁埋单


    衣服洗完了,好象今天洗得特别干净。新年新气象嘛!


Goingmm Subscription 2006-01-01

posted @ 2006-01-02 14:38 Goingmm 阅读(418) | 评论 (9)编辑 收藏

      
       WTP(Web Tools Platform)是Eclipse组织的一个针对J2EE做的一个开发工具插件,是Eclipse下面的一个项目.使用过WTP 0.7的用户都知道,WTP提供了几乎完整的Web应用开发的工具支持.
      12月19日,Eclipse基金会发布了WTP(Web Tool Project) 1.0rc版本.当天只发布了相关的插件包。我大概是25号从官方网站
http://download.eclipse.org/webtools/downloads/drops/R-1.0-200512210855/拿到了全集成的版本(Eclipse Version: 3.1.1 Build id: M20050929-0840)。
     用这个版本写了一个DEMO。感觉是上手挺容易的。V1.0在V0.7的基础上Fixed了一些Bug。而且有些功能点简化了。做得更common一些。使用过程遇到一些问题,但我不肯定是不是对环境不够熟悉造成的误解。比如修改一个JSP的名字,怎么发布都报错,只有关掉WTP重新Init一次。还有中文问题在这个环境中仍然存在。为了不写Action和相关配置文件,我用一个Servlet来控制转发的,加上一句req.setCharacterEncoding("gb2312")就搞定了。

    列举主要使用过程:
    ■ Setup and configuration 
    ■ Development basics       
    ■ JSP Editing                     
    ■  Servlets                         
    ■  Deployment descriptors  
    ■  Structure Source Editing (SSE) framework
    ■  Server
    ■  Running and debugging the web app

     准备放这个Demo的过程,和简单的代码。但是篇幅原因,我就只能放一些零碎的图片。在这里没有打算告诉大家怎么去写一个简单的Web应用。如果对WTP感兴趣的话,这里就当是一些初级的了解吧。有什么问题欢迎讨论
      
      WTP的基础了解 PIC
      WTP-ProjectScopes.JPG

     WTP-Architecture.JPG

    基本配置 PIC
    Configuration-InstalledJRE.JPG

    Configuration-ServerRuntime.JPG

   关于DEMO PIC
   WTP-ProjectFileView.JPG

  添加一个这样的服务器很简单。和WSAD差不多WTP-ProjectStartServer.JPG

启动好的服务器
WTP-ServerStarted.JPG

运行JSP
WTP-ProjectRun.JPG

登陆页面
WTP-ProjectLoginError.JPG

WTP-ProjectLogin.JPG

登陆成功
WTP-ProjectLoginSuccessful.JPG

中文请求 演示
WTP-RequestZH.JPG

WTP-ResponseZH.JPG


END


goingmm 2006-01-02

posted @ 2006-01-02 14:19 Goingmm 阅读(618) | 评论 (1)编辑 收藏

    喔! 天亮了!不知不觉 熬了一个通宵 让今天在熟睡中流逝

20051224.JPG

posted @ 2005-12-24 09:47 Goingmm 阅读(250) | 评论 (3)编辑 收藏

异常处理

       曾经专门花时间研究过JAVA中“异常处理”。一直想写一篇文章。也一直没有找到合适的方式。概念书上都有,在这里我再重提又觉得对不起大家。最后就不了了之。
       无意间,看到CSDN上有一篇文章写得不错。转给大家看看吧。作者给出了很标准的做法,这里我加点建议。
      
       仅供参考
注:所有建议都不会去怀疑和针对,作者想要讲解的异常处理知识点
      Source code的每一个角落都这样100%标准的去处理异常。会一定程度的影响代码质量。不要相同的处理逻辑反复出现(比如用Template模式简化处理过程)         
  
¢ 根据自己的实际情况选择异常使用,能不用异常处理的时候尽量不要用。有时候没有必要强求”100%
       
      
      转贴内容

      你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
    

 11 OutputStreamWriter out =  
 22 java.sql.Connection conn =  
 33 try // ⑸ 
 44  Statement stat = conn.createStatement(); 
 55  ResultSet rs = stat.executeQuery( 
 66   "select uid, name from user"); 
 77  while (rs.next()) 
 88  
 99   out.println("ID:" + rs.getString("uid"// ⑹ 
1010    ",姓名:" + rs.getString("name")); 
1111  }
 
1212  conn.close(); // ⑶ 
1313  out.close(); 
1414 }
 
1515 catch(Exception ex) // ⑵ 
1616 
1717  ex.printStackTrace(); //⑴,⑷ 
1818 }

作为一个Java程序员,你至少应该能够找出两个问题。但是,如果你不能找出全部六个问题,请继续阅读本文。

  本文讨论的不是Java异常处理的一般性原则,因为这些原则已经被大多数人熟知。我们要做的是分析各种可称为“反例”(anti-pattern)的违背优秀编码规范的常见坏习惯,帮助读者熟悉这些典型的反面例子,从而能够在实际工作中敏锐地察觉和避免这些问题。

  反例之一:丢弃异常

  代码:15行-18行。

  这段代码捕获了异常却不作任何处理,可以算得上Java编程中的杀手。从问题出现的频繁程度和祸害程度来看,它也许可以和C/C++程序的一个恶名远播的问题相提并论??不检查缓冲区是否已满。如果你看到了这种丢弃(而不是抛出)异常的情况,可以百分之九十九地肯定代码存在问题(在极少数情况下,这段代码有存在的理由,但最好加上完整的注释,以免引起别人误解)。

  这段代码的错误在于,异常(几乎)总是意味着某些事情不对劲了,或者说至少发生了某些不寻常的事情,我们不应该对程序发出的求救信号保持沉默和无动于衷。调用一下printStackTrace算不上“处理异常”。不错,调用printStackTrace对调试程序有帮助,但程序调试阶段结束之后,printStackTrace就不应再在异常处理模块中担负主要责任了。

  丢弃异常的情形非常普遍。打开JDK的ThreadDeath类的文档,可以看到下面这段说明:“特别地,虽然出现ThreadDeath是一种‘正常的情形’,但ThreadDeath类是Error而不是Exception的子类,因为许多应用会捕获所有的Exception然后丢弃它不再理睬。”这段话的意思是,虽然ThreadDeath代表的是一种普通的问题,但鉴于许多应用会试图捕获所有异常然后不予以适当的处理,所以JDK把ThreadDeath定义成了Error的子类,因为Error类代表的是一般的应用不应该去捕获的严重问题。可见,丢弃异常这一坏习惯是如此常见,它甚至已经影响到了Java本身的设计。

  那么,应该怎样改正呢?主要有四个选择:

  1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个人或进行其他一些处理,要根据具体的情形确定应该采取的动作。再次说明,调用printStackTrace算不上已经“处理好了异常”。

  2、重新抛出异常。处理异常的代码在分析异常之后,认为自己不能处理它,重新抛出异常也不失为一种选择。

  3、把该异常转换成另一种异常。大多数情况下,这是指把一个低级的异常转换成应用级的异常(其含义更容易被用户了解的异常)。

  4、不要捕获异常。

  结论一:既然捕获了异常,就要对它进行适当的处理。不要捕获异常之后又把它丢弃,不予理睬。

  反例之二:不指定具体的异常

  代码:15行。

  许多时候人们会被这样一种“美妙的”想法吸引:用一个catch语句捕获所有的异常。最常见的情形就是使用catch(Exception ex)语句。但实际上,在绝大多数情况下,这种做法不值得提倡。为什么呢?

  要理解其原因,我们必须回顾一下catch语句的用途。catch语句表示我们预期会出现某种异常,而且希望能够处理该异常。异常类的作用就是告诉Java编译器我们想要处理的是哪一种异常。由于绝大多数异常都直接或间接从java.lang.Exception派生,catch(Exception ex)就相当于说我们想要处理几乎所有的异常。

  再来看看前面的代码例子。我们真正想要捕获的异常是什么呢?最明显的一个是SQLException,这是JDBC操作中常见的异常。另一个可能的异常是IOException,因为它要操作OutputStreamWriter。显然,在同一个catch块中处理这两种截然不同的异常是不合适的。如果用两个catch块分别捕获SQLException和IOException就要好多了。这就是说,catch语句应当尽量指定具体的异常类型,而不应该指定涵盖范围太广的Exception类。

  另一方面,除了这两个特定的异常,还有其他许多异常也可能出现。例如,如果由于某种原因,executeQuery返回了null,该怎么办?答案是让它们继续抛出,即不必捕获也不必处理。实际上,我们不能也不应该去捕获可能出现的所有异常,程序的其他地方还有捕获异常的机会??直至最后由JVM处理。

  结论二:在catch语句中尽可能指定具体的异常类型,必要时使用多个catch。不要试图处理所有可能出现的异常。

  反例之三:占用资源不释放

  代码:3行-14行。

  异常改变了程序正常的执行流程。这个道理虽然简单,却常常被人们忽视。如果程序用到了文件、Socket、JDBC连接之类的资源,即使遇到了异常,也要正确释放占用的资源。为此,Java提供了一个简化这类操作的关键词finally。

  finally是样好东西:不管是否出现了异常,Finally保证在try/catch/finally块结束之前,执行清理任务的代码总是有机会执行。遗憾的是有些人却不习惯使用finally。

  当然,编写finally块应当多加小心,特别是要注意在finally块之内抛出的异常??这是执行清理任务的最后机会,尽量不要再有难以处理的错误。

  结论三:保证所有资源都被正确释放。充分运用finally关键词。

反例之四:不说明异常的详细信息

  代码:3行-18行。

  仔细观察这段代码:如果循环内部出现了异常,会发生什么事情?我们可以得到足够的信息判断循环内部出错的原因吗?不能。我们只能知道当前正在处理的类发生了某种错误,但却不能获得任何信息判断导致当前错误的原因。

  printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程,但只提供了一些最基本的信息,未能说明实际导致错误的原因,同时也不易解读。

  因此,在出现异常时,最好能够提供一些文字信息,例如当前正在执行的类、方法和其他状态信息,包括以一种更适合阅读的方式整理和组织printStackTrace提供的信息。

  结论四:在异常处理模块中提供适量的错误原因信息,组织错误信息使其易于理解和阅读。

  反例之五:过于庞大的try块

  代码:3行-14行。

  经常可以看到有人把大量的代码放入单个try块,实际上这不是好习惯。这种现象之所以常见,原因就在于有些人图省事,不愿花时间分析一大块代码中哪几行代码会抛出异常、异常的具体类型是什么。把大量的语句装入单个巨大的try块就象是出门旅游时把所有日常用品塞入一个大箱子,虽然东西是带上了,但要找出来可不容易。

  一些新手常常把大量的代码放入单个try块,然后再在catch语句中声明Exception,而不是分离各个可能出现异常的段落并分别捕获其异常。这种做法为分析程序抛出异常的原因带来了困难,因为一大段代码中有太多的地方可能抛出Exception。

  结论五:尽量减小try块的体积。

  反例之六:输出数据不完整

  代码:7行-11行。

  不完整的数据是Java程序的隐形杀手。仔细观察这段代码,考虑一下如果循环的中间抛出了异常,会发生什么事情。循环的执行当然是要被打断的,其次,catch块会执行??就这些,再也没有其他动作了。已经输出的数据怎么办?使用这些数据的人或设备将收到一份不完整的(因而也是错误的)数据,却得不到任何有关这份数据是否完整的提示。对于有些系统来说,数据不完整可能比系统停止运行带来更大的损失。

  较为理想的处置办法是向输出设备写一些信息,声明数据的不完整性;另一种可能有效的办法是,先缓冲要输出的数据,准备好全部数据之后再一次性输出。

  结论六:全面考虑可能出现的异常以及这些异常对执行流程的影响。

          改写后的代码

 1OutputStreamWriter out =  
 2java.sql.Connection conn =  
 3try 
 4 Statement stat = conn.createStatement(); 
 5 ResultSet rs = stat.executeQuery( 
 6  "select uid, name from user"); 
 7 while (rs.next()) 
 8 
 9  out.println("ID:" + rs.getString("uid"+ ",姓名: " + rs.getString("name")); 
10 }
 
11}
 
12catch(SQLException sqlex) 
13
14 out.println("警告:数据不完整"); 
15 throw new ApplicationException("读取数据时出现SQL错误", sqlex); 
16}
 
17catch(IOException ioex) 
18
19 throw new ApplicationException("写入数据时出现IO错误", ioex); 
20}
 
21finally 
22
23 if (conn != null
24  try 
25   conn.close(); 
26  }
 
27  catch(SQLException sqlex2) 
28  
29   System.err(this.getClass().getName() + ".mymethod - 不能关闭数据库连接: " + sqlex2.toString()); 
30  }
 
31 }
 
32
33 if (out != null
34  try 
35   out.close(); 
36  }
 
37  catch(IOException ioex2) 
38  
39   System.err(this.getClass().getName() + ".mymethod - 不能关闭输出文件" + ioex2.toString()); 
40  }
 
41 }
 
42}
 


         本文的结论不是放之四海皆准的教条,有时常识和经验才是最好的老师。如果你对自己的做法没有百分之百的信心,务必加上详细、全面的注释。

  另一方面,不要笑话这些错误,不妨问问你自己是否真地彻底摆脱了这些坏习惯。即使最有经验的程序员偶尔也会误入歧途,原因很简单,因为它们确确实实带来了“方便”。所有这些反例都可以看作Java编程世界的恶魔,它们美丽动人,无孔不入,时刻诱惑着你。也许有人会认为这些都属于鸡皮蒜毛的小事,不足挂齿,但请记住:勿以恶小而为之,勿以善小而不为。

2005-12-17
Goingmm  Subscription

posted @ 2005-12-17 15:58 Goingmm 阅读(376) | 评论 (2)编辑 收藏


几天没看新闻,Hibernate已经发布3.1版本
http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=127784&release_id=377721

Down下来简单看了看。初看,没多大变化嘛。但是关注一下Change Log.
感觉这个版本主要是Fixed 3.0的一些Bug

Change Log 部分引用

 1Changes in version 3.1  (12.12.2005)
 2-------------------------------------------
 3
 4** Bug
 5    * [HHH-849]   - Cartesian product + implicit joins
 6    * [HHH-1065] - user provided connection not usable by default due to agressive release changes
 7    * [HHH-1101] - associations join fetched in HQL without owner being selected
 8    * [HHH-1133] - Comparators, defined for collections in mapping files, are not set
 9    * [HHH-1149] - NPE flushing reattached entity  w/ non-mutable natural-id
10    * [HHH-1170] - HQL 'cast' function doesn't work with MySQL 4 when casting to string
11    * [HHH-1187] - Cannot delete a object having a delete-orphan collection when user_rollback_id is set
12    * [HHH-1191] - HQL fails backward compatibility using classic translator
13    * [HHH-1194] - hql delete statements with joined-subclass hierarchies with a mapped where attribute at the root
14    * [HHH-1206] - Mappings.TableDescription is not serializable
15    * [HHH-1212] - mismatch in entity-modes defined in DTD and EntityMode class
16    * [HHH-1227] - ClassCastException on DOM4J replicate of Calendar property
17    * [HHH-1239] - BinaryArithmeticOperatorNode.getDataType() does not properly handle date/time arithmetic
18    * [HHH-1240] - Track connection leakage in JDBCContext.afterTransactionCompletion()
19    * [HHH-1245] - Calling the Session should register it with the current JTA txn.
20    * [HHH-1254] - Serialization of Sessions using JDBCTransactions with auto-flush/auto-close
21
22** New Feature
23    * [HHH-1222] - Autodiscover scalar types in native-sql
24    * [HHH-1243] - allow placeholders to system properties in config properties
25    * [HHH-1244] - Support for MySQL5 stored procedures
26    * [HHH-1260] - Configuration.mergeProperties()
27
28** Task
29    * [HHH-1066] - Upgrade CGLIB to fix proxy memory leak
30    * [HHH-1242] - upgrade ANTLR to 2.7.6rc1
31
32** Improvement
33    * [HHH-860] - insert  select  and version numbers
34    * [HHH-926] - TypeDef should be global
35    * [HHH-1138] - No ConstraintName when using PostgreSQL
36    * [HHH-1144] - Implement naming convention for temporary test failures
37    * [HHH-1153] - PropertiesHelper fails reading primitive values from hibernate-mapping when doc has whitespace
38    * [HHH-1182] - Access to filter metadata
39    * [HHH-1183] - Getting sql "plan" for DML operations
40    * [HHH-1197] - Support for HQL delete on MaxDB
41    * [HHH-1198] - post-insert event pass the entity wo the id field filled when the generator is identity
42    * [HHH-1213] - make JACC event listeners auto configurable (through initialize(Configuration))
43    * [HHH-1215] - Added support for LVARCHAR in InformixDialect
44    * [HHH-1218] - Add concat() function support to SAPDBDialect
45    * [HHH-1255] - ThreadLocalSessionContext and Session serialization
46
47** Patch
48    * [HHH-967] - executeUpdate on StatelessSession
49    * [HHH-1172] - Missing configuration templates for the new MimerSQLDialect
50
51** Deprecation
52    * [HHH-1229] - deprecate ability for entities to not define identifier properties
53
54
55Changes in version 3.1 rc3  (17.11.2005)
56-------------------------------------------
57
58** Bug
59    * [HHH-755] - Setter / Getter for property gDate are wrong
60    * [HHH-764] - XML mapping
61    * [HHH-1034] - The connection is closed  *outside* the JTA transaction in TransactionHelper
62    * [HHH-1062] - java:comp/UserTransaction not correct for JBoss
63    * [HHH-1064] - Exception using JTATransaction in WebSphere 6
64    * [HHH-1069] - Unnecessary commas generated in select with left outer joins
65    * [HHH-1075] - New parser  "not exists" command bug
66    * [HHH-1077] - Typo in docs: "equiped"
67    * [HHH-1080] - HQL delete fails on entities with where-fragments using operators other than '='
68    * [HHH-1081] - missing parens in example code for Criteria Associations
69    * [HHH-1084] - incorrect method name "sql" in Restrictions example, should be "sqlRestriction"
70    * [HHH-1091] - Can't write transparent CurrentSessionContext for BMT
71    * [HHH-1098] - Patch for build.sh to be able to build latest version on linux
72    * [HHH-1106] - HQL "not in" generatad wrong SQL
73    * [HHH-1111] - JDBCTransaction.rollback() results in a call to Interceptor.beforeTransactionCompletion()
74    * [HHH-1128] - Column alias clashes under  certain circumstances
75    * [HHH-1146] - latest cvs(11/10/05)  hibernate3 issue with classic query
76    * [HHH-1156] - StatefulPersistenceContext not serializable when property-ref is used
77    * [HHH-1160] - Incorrect use of getGeneratedKey() for Oracle
78
79** New Feature
80    * [HHH-449] - korean hibernate reference manual
81    * [HHH-1129] - use expected-type in 'untyped' Query.setParameter()
82
83** Improvement
84    * [HHH-221] - Proxy for one-to-one with property-ref
85    * [HHH-844] - move parameter "bookkeeping" into QueryTranslator
86    * [HHH-1051] - "Compiled" native SQL queries are not cached
87    * [HHH-1061] - import.sql should allow more human readable and usable files
88    * [HHH-1078] - <dynamic-component> requires type on property
89    * [HHH-1120] - Make NamingStrategy to work nicely with HA and EJB3 naming strategy
90    * [HHH-1142] - added getSelectSequenceNextValString() and getCurrentTimestampSelectString() to TimesTenDialect
91
92** Patch
93    * [HHH-1063] - support for 'locate' function in SQLServer and Sybase dialects
94    * [HHH-1090] - Allow subqueries on criteria to obtain non-string results
95    * [HHH-1095] - Hibernate takes incorrect HasCode when a lot of CompositeKeys and Lazy loading is involved
96    * [HHH-1103] -  finalize method filter for proxies
97    * [HHH-1136] - more meaningful AssertionFailure message in org.hibernate.persister.entity.JoinedSubclassEntityPersister.getTableId()
98
posted @ 2005-12-13 15:01 Goingmm 阅读(646) | 评论 (4)编辑 收藏

       在想Class.forName 和ClassLoader.loadClass 的区别的时候。找到的一篇好文章。给有兴趣的朋友推荐
       
引用:
        Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯这样的错误而觉得不自然,但是在如果出现了ClassNotFoundException后异常后一脸的茫然,那我想你该了解一下java的类装载的体制了,同时为了进行下面的关于类装载器之间的隔离性的讨论,我们先简单介绍一下类装载的体系结构。
     
全文地址:http://gceclub.sun.com.cn/yuanchuang/week-9/classloader.html


2005-12-09

posted @ 2005-12-09 14:58 Goingmm 阅读(363) | 评论 (1)编辑 收藏

      外面天亮了,睁开朦胧的双眼。
        到处找着“时间”,手机会到什么地方去了呢?
        凌晨3:50 比赛闹铃一响。梦中惊醒过来后,不知道把手机丢什么地方去了。

                                             The Brightest Star...
        跑不赢是有点郁闷AC-2005120702.jpg
        AC-2005120703.jpg
        
        群殴 从来都没有惧过
        AC-2005120705.jpg
        
        一手遮天 他娃可能黑手党的小混混
        AC-2005120706.jpg

      混混本色 跳起一耳SHI
       AC-2005120704.jpg

      跟他们玩累了 咋哥俩就在这小睡一会吧
      AC-20051207.jpg

      2005-12-07 

     
       
       

      

posted @ 2005-12-07 15:13 Goingmm 阅读(319) | 评论 (1)编辑 收藏

仅列出标题
共6页: 上一页 1 2 3 4 5 6 下一页