<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>DavyLee</title>
    <description></description>
    <link>http://davylee.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>2008年7月1日，盖茨离职了，我上任了！</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/210808" style="color:red;">http://davylee.javaeye.com/blog/210808</a>&nbsp;
          发表时间: 2008年07月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp; 公元2008年7月1日，伟大的计算机科学家、MicroSoft公司的创始人比尔 盖茨离职了，而我却在这一天&ldquo;上任&rdquo;了。</p>
<p>&nbsp;&nbsp;&nbsp; 标题似乎有故意吸引眼球之嫌，但我只是述说事实，各位看官勿怪！</p>
<p>&nbsp;&nbsp;&nbsp; 凭着吹嘘号称有x年经验，我从一个创业团队进入了一个比较大点的公司，感触颇多.............</p>
<p>&nbsp;&nbsp;&nbsp; 总公司在北京，我在天津开发税务相关的项目，第一天去公司无非是熟悉开发环境之类，终于发现虽然自己熟悉x框架，了解y中间件，知道z服务器，但在人家公司自己开发的框架前竟然是一片空白，如同一张白纸.........</p>
<p>&nbsp;&nbsp;&nbsp; 分到一台笔记本，是IBM ThinkPad R40 e的老机型，已经停产了，但我并没有不悦，毕竟不是自己掏钱。然后有人指点下配置环境，可怜啊，那种机器的的网卡似乎是10M的，或者交换机是10M的，传个东西慢的出奇，而且usb也是1.0,让人难以忍受！大的公司在技术上一般都比较保守，用的都是老的版本，比如，jdk为1.4,tomcat为5.0,我虽然带了硬盘，但都是高版本的，那位经理给我传个eclipse3.2还给传错了，不能用。我便决定用自己的myEclipse..........</p>
<p>&nbsp;&nbsp;&nbsp; 先装了jdk1.4,又装了myEclipse 5,又装了oracle 9i的client,从局域网上的cvs上check工程下来，要半个小时，工程还不是web工程，有点凌乱，甚至连classpath都找不到，还得自己设置编译目录，靠，难道就不能用先进点的工具么？这种破机器编译一次需要半个小时左右，只要buildpath的library里少放个包或多放个包，就得耽误半个小时。那个经理帮我弄了半天，在我机器上死活通不过，汗！无论怎么搞连java.util.Enumberation都找不到，而且看不出问题在哪来。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 唉，所以到一个新地方，一定要严格按照人家的规矩去做，不要以为自己会啥啥，就如何如何.....</p>
<p>&nbsp;&nbsp;&nbsp; 把myEclipse卸掉，再用普通的eclipse3.2打开myEclipse刚建立的工作区，靠，eclipse3.2的界面也变成了myEclipse,我注册表里所有myEclipse的项都删除，结果依然如故。结果，经理说环境有问题，根本无法编译，其实具体问题的确不好说，因为我check了2个工程，其中一个工程编译通过，而另一个死活无法编译！<br />
&nbsp;&nbsp;&nbsp;&nbsp; 甚至最后我重装了操作系统，重装eclipse,再打开那个工作区，靠，eclipse的界面还是myEclipse.当然我已经找到答案了。<br />
&nbsp;&nbsp;&nbsp; 简单总结一下：<br />
&nbsp;&nbsp;&nbsp; 第一：既然是自己不熟悉的环境，就严格按照人家的做！一步也不能差，否则吃亏是自己。<br />
&nbsp;&nbsp;&nbsp; 第二：好心可能会帮倒忙。我说个例子，我的eclipse里显示编译有10万个错误，我们知道，eclipse显示编译错误默认是显示100个错误的，而且显示错误的顺序就是错误出现的先后顺序，对于10万个错误，真正有用的错误信息很可能是最后几十条，而不是前面的9000多条，我认为eclipse在这个地方做的不是很好。当然他有筛选器，可以让你过滤掉一些。还有个地方做的不好，就是默认为显示100条错误，我把这个默认100条错误的限制去掉，它不会弹出警告信息！我就真的傻傻地把这个去掉了，结果eclipse再也起不来了，因为同时把10万条错误信息都显示出来，占系统资源太多，系统承受不了。这就是我犯的错误，不过，我认为，eclipse应该在取消100条限制时给个警告，告诉使用者，如果错误太高很有可能启动很慢。</p>
<p>&nbsp;&nbsp;&nbsp; 第三：经验问题，装了jdk1.4,再装oracle,则oracle9i自带的jdk1.3会写入path环境变量，而你设置的jdk1.4环境变量就失效了！解决办法是把path中你设置的环境变量放到最前面，这样就ok了！</p>
<p>&nbsp;&nbsp;&nbsp; 第四：准备个本，把人家说的一些设置都记录下来，比如ip啊，服务器用户啊，连接地址啊，邮件啊，cvs啊，你不可能总一次一次问人家的，你不怕烦人家还怕烦呢。</p>
<p>&nbsp;&nbsp;&nbsp; 第五：只要先用myEclipse建立了工作区，即使你把myEclipse卸掉，再用普通的eclipse打开这个工作区，你的普通的eclipse的界面也会变成不完整的myEclipse界面，即使你清理了注册表里的myEclipse项。</p>
<p>&nbsp;&nbsp;&nbsp; 第六：放弃myEclipse吧，虽然它的确不错，但它容易让人变懒，它会让你依赖它。</p>
<p>&nbsp;&nbsp;&nbsp; 公司不允许上外网，只好晚上回家来此吐吐口水，当然我提前吃了口香糖，口气应该还算比较清新...........</p>
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/210808#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Jul 2008 22:54:51 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/210808</link>
        <guid>http://davylee.javaeye.com/blog/210808</guid>
      </item>
      <item>
        <title>强烈推荐&quot;深度&quot;sp3的GhostXP 8.1专业版</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/209961" style="color:red;">http://davylee.javaeye.com/blog/209961</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp; 相信大家还是用winxp桌面系统的占大多数.如果你用的是正版,那此文您大可不必看了;如果您和我一样仅仅把winxp拿来做学习研究之用,那么我强烈推荐&quot;深度&quot;sp3的GhostXP 8.1专业版.下载地址为:http://www.xpxzlt.cn/simple/index.php?f39.html<br />
&nbsp;&nbsp;&nbsp; 最近由于系统故障,我不知道尝试了多少个版本的win操作系统,主要为win2000 pro,上海政府版,还有就是前面提到到&quot;深度&quot;ghostXP sp3 8.1或更高版.<br />
&nbsp;&nbsp;&nbsp; 其实开始,我是不喜欢这些版本的,我最喜欢的就是干净版,自己逐步往上装东西.比如,以前就用上海政府版.但最近系统总是死机,经过长达36小时的研究,发现问题可能是P4 cpu超线程 和sp2补丁或其他东西冲突引起的.后来,有网友反对有上海政府版,他的理由是那个版本太老了,没有人去继续维护和完善它了.而在那基础上升级,虽说可以在线升级,但终究是盗版,中间会发生什么问题,谁了不敢确定;相比之下,深度做的这个ghostXP就好多了,有sp3的补丁,及最新到2008年6月的全部补丁,并带了少量的常用软件.用ghost回复一下即可,比从头装系统快太多了.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 仅仅有以上原因是不足以说服大家用它的,我感觉它最大的特点是做了优化,响应速度超级超级快.比上海政府等版本的响应速度快了好多好多.多说无益,感兴趣的可以一试.......</p>
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/209961#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 23:26:01 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/209961</link>
        <guid>http://davylee.javaeye.com/blog/209961</guid>
      </item>
      <item>
        <title>莫名其妙死机，只好刷bios</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/209526" style="color:red;">http://davylee.javaeye.com/blog/209526</a>&nbsp;
          发表时间: 2008年06月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          去年换了台机器，双敏up4m800n pro的板子，2.93cpu,机器性能不错，但不稳定。<br />    正常的时候一切ok, 非常好用；突然发神经，不正常了，就再也没有办法了，任凭你重装20次操作系统也没有任何效果。<br />    发生问题时的具体症状如下：cpu占用突然变成100%,突然某个进程(比如firefox)占50%,System进程也占50%,而且进程在任务管理器里无法kill掉，键盘虽然没停止响应，但power按纽及开始菜单的关机命令，都不能关掉机器，只有按住机箱上的电源按纽才能关掉。<br />    最近又发生了此问题，我重装了15次以上的操作系统xp,还是出现此问题，就决定更新bios,从双敏的官方站下载了最新的主板bios驱动up4m800npro130.zip，放到某个fat32分区，然后进纯dos,运行一下exe文件，输入框里输入bios驱动的文件名（一般为bin,此时为xxx.130）,然后回车，它会提示你备份现有的bios,输入个文件名，然后提示“按Y则Program写如bios按N则返回”，按下Y,然后开始写入bios（注意，某些主版的rom是写保护的，请先在bios里设置为可写，等刷完bios再设置为只读模式）,只要不断点即可，最后按F1重新启动机器，发现bios已更新到最新版本。<br />    更新完bios后，系统目前恢复正常，继续观察中..........
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/209526#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 29 Jun 2008 21:12:15 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/209526</link>
        <guid>http://davylee.javaeye.com/blog/209526</guid>
      </item>
      <item>
        <title>打不开chm的解决办法</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/209482" style="color:red;">http://davylee.javaeye.com/blog/209482</a>&nbsp;
          发表时间: 2008年06月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1.看看你的OS的语言设置 和chm文档的语言是不是一致的 ？如果不一致就会打不开得到上面这样的错误。比如如果下载的chm文档是中文的，那么到[控制面板]中看看那个"语言和区域"的【自定义】，打开看看【区域选项】 是不是中国，这个选项对一些软件还是有一些影响的。<br /><br />2.运行里面输入 regsvr32 itss.dll<br /><br />3.在命令行运行regsvr32 hhctrl.ocx<br /><br />4. 把文件名称改为E文的简单一点(a.chm)，copy 到一个根目录下面，打开看看，如果不行，向下看。<br /><br />5、重新下载，有的时候下载过程出了问题，看看是否OK
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/209482#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 29 Jun 2008 17:42:50 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/209482</link>
        <guid>http://davylee.javaeye.com/blog/209482</guid>
      </item>
      <item>
        <title>java大小的敏感与文件系统的非大小敏感容易引起问题</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/195956" style="color:red;">http://davylee.javaeye.com/blog/195956</a>&nbsp;
          发表时间: 2008年05月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          java是严格区分大小写的，但常用的文件系统是不区分大小写的，比如windows下，在某目录里放个文件test.jpg就无法再放TEST.JPG.这样一来，当我们用java操作文件时有时就会遇到此问题。<br />    我遇到的问题如下，老的数据库是为asp设计的，数据库里图片扩展名为jpg或JPG,而实际图片存储在硬盘上，图片的扩展名和数据库里该图片的扩展名不匹配，这在iis下的asp是没有问题的，都能正常的显示。但tomcat下就惨了，显示图片时如：www.test.com/test.JPG,其中test.JPG为数据库里读取出来的文件名，而实际文件名为test.jpg,显然页面上根本无法显示图片。如果你根据数据库里的文件名test.JPG,通过IO是去判断test.JPG是否存在，得到的结果却是存在(尽管实际存在的是test.jpg)。<br /><pre name="code" class="java">
 File file = new File("test.JPG");
 if(!file.exist())
{
    return test.jpg;
}else
{
   return test.JPG
}
</pre><br />这样的判断得不到预期的结果!<br />    此问题需引起注意.
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/195956#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 23 May 2008 11:35:00 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/195956</link>
        <guid>http://davylee.javaeye.com/blog/195956</guid>
      </item>
      <item>
        <title>这能否算Hibernate的Bug?</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/191677" style="color:red;">http://davylee.javaeye.com/blog/191677</a>&nbsp;
          发表时间: 2008年05月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          遇到一个非常奇怪的问题,感觉象hibernate的bug,即使不是bug,也是设计的有失偏颇。<br />一个简单的Pojo映射如下：<br /><pre name="code" class="xml">
&lt;hibernate-mapping package="cn.crazyasp.album.user">
  &lt;class name="Member" table="V_MemberDetail_info">
    &lt;id name="oid" type="long" column="MBDT_index">
      &lt;generator class="native" />
    &lt;/id>
    &lt;property name="id" column="MBDT_MBUid" type="string"/>
    &lt;property name="name" column="MBDT_City" type="string"/>	
  &lt;/class>
&lt;/hibernate-mapping>
</pre><br />oid为自增long类型，id为guid，表中为string类型.<br />简单查询的hql为：from Member as t where t.id = ?<br />ok,这看起来是没有问题的，一切都很ok.<br />可事实上，这条hql执行时，它应该去根据哪个属性去查询呢？<br />凭感觉，它应该根据属性名称即“property name='id'”去做查询，因为非id属性就是如此;<br />可事实上，它却去根据oid即hibernate的id结点去查询.......<br />当然，这种情况是一种极特别的情况，被我遇到了而已..........<br />这也许不算bug,也许人家就是如此设计的吧....
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/191677#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 10 May 2008 09:54:28 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/191677</link>
        <guid>http://davylee.javaeye.com/blog/191677</guid>
      </item>
      <item>
        <title>某财经大学java老师布置的作业，你会吗？</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/187120" style="color:red;">http://davylee.javaeye.com/blog/187120</a>&nbsp;
          发表时间: 2008年04月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这是某财经大学java老师布置的作业，你会吗？<br />Java 程序设计—Assignment 1<br />Dead line : (06/05/2008) 上课之前<br />分数将在考试前公布<br /><br />提交方式:光盘或者软盘，所有的代码要打印出来（A4）一起交上来，第一页写清楚班级、姓名、学号。<br /><br />相关规定：<br />1迟于规定时间交作业0分。(如果你按时交上来哪怕没有任何东西，会按照相关规定打分，至少应强于0分。)<br />2如果你的确有非人力不可抗拒原因没有按时交作业，请提前跟我提前打招呼，酌情处理最后的分数。<br />3 Plagiarism(抄袭) 是严格禁止的。如果发现取消期末考试资格。<br /><br />非常抱歉以上的规定，但这是你们应该知道并且应该遵守的。那么，我这次作业想让你们做什么呢？<br /><br />通过Java Socket level 完成一个应用层协议XA protocol, XA protocol 本身是一个事务处理的典型实例，但由于我们没有讲JavaEE 没有讲Java如何实现Transcation所以评分标准里面不含有事务那一部分，只是实现协议的基本内容就可以了。<br /><br /><br />参与者1： 大胖银行，有两个账户，Scofield 和 Burrows ,每人有若干 美元 而且他们各自有在小瘦银行的账户<br />参与者2:  小瘦银行，有两个账户，Bagwell 和 Sucre ,每人有若干美元，并且各自有在大胖银行的账户<br />注: 银行有保存账户状态的能力，能够保存命令，并且能把他们存到硬盘或者数据库作为持久化的手段<br />参与者3: 事务协调者<br />参与者4：事务的发起者他有两个主要功能：1 int doABalance(bank,account)//返回账户余额<br />2 boolean doATransfer(bankFrom,accountFrom,bankTo,accountTo)//返回成功或者失败<br /><br /> <br /><br />自己按照我的UML(Sequence Diagram)编写代码,你可以在处理不同参与者的action的时候不采用完全的XA protocol但如果有跨行的行为必须采用完全的XA protocol协议。所以以此看来 instigator 即是bank的客户端也是事务协调者（co-ord）的客户端。而银行是Instigator的服务器端但是coordinator的客户端。而coordinator是银行和Instigator的服务器端<br /><br />*1有能力的同学可以采用transcation的方式来处理dobalance和 doTransfer两个动作，因为XA protocol本身就是transcation的典型应用<br /><br />*2如果有的同学能力更强可以考虑一下情况的处理：<br />1 转帐时一方没有足够的资金<br />2 一个银行在交易之前down掉了（用timeout这种情况）<br />3 一个银行在coordinator发出commit指令之后失败了，需要恢复数据<br />（老师说若实在不会可将自己的思想说明一下）<br /><br /><br />提交格式:<br />1 4个角色的代码 <br />2 总结出协议是怎样应用的<br />3 显示出正确的结果来显示整套系统运转正常<br />4 有能力的同学完成*1 *2并给出方案或者代码中具体实现出来<br />5 写出Instruction告诉我如何使用你的系统，一定要写清楚<br /><br />例如：zip 你的文件包括（编译好的.class文件jar包也可以）当然要包括Java文件，我解压缩到D盘根目录，读你的instruction,并且运行在D盘根目录。<br />你可以留下一些调试代码（有意义的）来说明你的意图。<br />你还可以创建一些.bat文件让我直接运行。而不用按照你的特殊的输入格式。<br />最后一点你的代码每一个方法最好有注释采用/**java doc*/的方式，或者直接生成javadoc 文档.<br />关于IDE你可以自主选择当然最好是业界常用的Eclipse（免费），当然InteliJ IDEA,Jbuilder,Together甚至Netbeans(免费)也是不错的选择但注意支持正版。<br /><br /><br />评分标准:<br />清楚的Instruction - 	                10%<br />清楚的协议实现			            20%<br />代码的完成质量-	 	                40% （包括清楚地注释和良好的面向对象编程方式）<br />转账功能正常完成 -			        20%<br />余额功能正常完成- 			        10%<br />*附加分:Transcation,Failure design或实现	20%<br /><br /><br />Good Luck<br />马森<br />4/11/2007
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/187120#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 26 Apr 2008 17:14:28 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/187120</link>
        <guid>http://davylee.javaeye.com/blog/187120</guid>
      </item>
      <item>
        <title>发点牢骚---对待问题我们要有自己的观点，切莫人云亦云</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/180371" style="color:red;">http://davylee.javaeye.com/blog/180371</a>&nbsp;
          发表时间: 2008年04月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本着家事国事天下事事事关心的原则，今天看了条新闻，标题为“人民币兵临“7”下 未来几年会升值几倍(图)”，地址为：http://finance.qq.com/a/20080408/000604.htm，心中实在有气，简直愚昧百姓啊！实在忍不住了，发点牢骚！<br /><br />    说一个最简单的道理,美国和咱们是什么关系?好朋友,过命的交情?<br />    人民币升值你说美国高兴什么?他们为什么要高兴?你们到底想过没有?<br />    不要人云亦云,行长只是管理人员,有些话他不得不那样说,当然有些事情也许他根本真的不理解?<br />    你说,如果人民币升值对美国没有好处的话,他们能高兴吗?<br />    美国整体来说,对咱们还是充满敌意的!因为咱们国家已经慢慢走向强大,当然还有艰难的历程!<br />    但美国一直想当世界的老大啊,他一直防着我们,对我们充满敌意!<br />    从这个角度出发,美国感觉人民币升值好,则一定是对他们美国有好处,对我们肯定不好!一切的根源就在这里!<br />    我来说说具体的好处,在多年以前,我们知道1美圆=8元左右人民币!这么多年了,他们一直往中国输入大量美圆,这些美圆都已经已1美圆兑换8元人民币的价格换成了人民币!等人民币升值几倍后,人家再把这8元人民币换成2美圆弄回美国去!你说,到底谁陪了?咱们怎么办?大家用脑子想一想<br />    我们凭空多出来好多人民币，但我们生产的物质总和就是那么多，等待我们的只有通货膨胀。物价不上涨会飞！
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/180371#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 08 Apr 2008 10:49:27 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/180371</link>
        <guid>http://davylee.javaeye.com/blog/180371</guid>
      </item>
      <item>
        <title>JProfiler4.2.2初探-注册码输错会如何？</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/180185" style="color:red;">http://davylee.javaeye.com/blog/180185</a>&nbsp;
          发表时间: 2008年04月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 早期在webwrok和hibernate及spring下写过一个站点，一直运行很慢，cpu经常100%了，决心用JProfiler监控一下。<br />&nbsp;&nbsp;&nbsp; 我用的是JProfiler4.2.2版本，最新的可能已经到了5.1了。安装很简单，只是有一个地方要输入注册码，这个不太好找，好不容易从网上找到一段java代码，标的是可以生成JProfiler4.2的注册版，然后我随意生成一个，name和companyName随意写的，然后点next就安装下去了(注意：它并没有提示注册码错误等信息).<br />&nbsp;&nbsp;&nbsp; 安装完后，建立一个新的项目，即在quick start 里选an application server,locally or remotely,然后选择web server,我的是tomcat5.5,其bin目录里没有starup.sh,所以我选择的是&ldquo;Apache Tomcat5.x(with Tomcat5.exe)&rdquo;,再选择tomcat5.exe,然后剩下的点下一步即可，注意端口默认8849即可.这样最后点ok按纽，就会弹出一个终端窗口，里面为tomcat的启动信息(因web服务器而异)。<br />&nbsp;&nbsp;&nbsp; 然而，事实上并没有如此顺利，它弹出了一个对话框，内容大体如下(可能有实际有点出入，但意思大体一致)：<br />Could not connected to 127.0.0.1.The JVM has been teminated unexpectedly.....<br />&nbsp;&nbsp;&nbsp; 而控制台显示一些ClassPath的信息，最后一行显示JProfiler &gt; Disconnected<br />&nbsp;&nbsp;&nbsp; tomcat根本也没有启动。<br />&nbsp;&nbsp;&nbsp; 看到这些报错信息，你能猜想出问题出在哪里么？<br />&nbsp;&nbsp;&nbsp; 好象不是很容易。我立即从官方找来doc(本以为这样的东西不需要Doc呢)，翻了一阵，没有相关介绍，我确信自己没有做错什么！无奈之下，我把jdk 1.5_06重装了3次，又把JProfiler重装了3次，错误依然如故！这中间还发生了点小插曲：JProfiler4.2.2我卸载时卸载不干净，第2次再安装的时候，它不会再要求你去重新输入注册码了，而沿用第一次你输入的注册码！即使你从windows的注册表里删除了所有的JProfiler 相关的键值结果仍然是这样（当然也有可能我删除的不干净，但概率不高）！<br />&nbsp;&nbsp;&nbsp; 似乎陷入了僵局，我岂是那种轻易放弃的人？google,baidu,查了好久，仅仅发现两例和我相同情况，但没有提及解决办法。还是自己来吧，来试验一下他自带的demo,呵呵，竟然发现也不能用，而且UI上没有明显的提示信息！不甘心之余，我又仔细检查其控制台的输出信息，发现里面有一句&ldquo;the register key is invalid&rdquo;！问题终于浮出水面！我心里恶狠狠地用&quot;靠&quot;来祝福它一句！<br />&nbsp;&nbsp;&nbsp; 原来是我找的注册程序有问题，根本不匹配当前版本或根本就不是有效的注册程序！又重新找了一份破解jar,这个挺好搜的，我就不提供下载了，毕竟人家软件是收费的，有需要的可以给我留言并留下邮件地址。<br />在其&quot;help&quot;菜单里找到重新输入注册码项，输入正确的验证码,就成功了！<br />&nbsp;&nbsp;&nbsp; 真乃一朝烟消云散，神情气爽.........
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/180185#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 07 Apr 2008 17:11:12 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/180185</link>
        <guid>http://davylee.javaeye.com/blog/180185</guid>
      </item>
      <item>
        <title>处理sql server数据的经过，又学了一点点！</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/177276" style="color:red;">http://davylee.javaeye.com/blog/177276</a>&nbsp;
          发表时间: 2008年03月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          问题描述如下：<br />      首先数据库在187上，当前跑的数据库是album,另一个备份数据库是album_back,这个是我防止处理数据出错而把最初整理好的18万条数据放在了里面的cn_crazyasp_album_image_TImage表中，另外2张表一个是preview一个是TAlbum都是空白表.<br />      说说处理过程，18万条数据分为2类，一类是活动照片记录，类型标记(ownerType)为activity;一类是个人照片记录，类型标记(ownerType)为user.这18万条数据目前不输入任何相册，其albumId都为null(当然在album 库中已有50000条albumId > 0了)；<br />      现在需要的过程是：遍历每条数据，根据这条数据的ownerType和ownerId去建立相册，即给每个活动建立一个默认的相册，放其相关的照片；对每个用户也建立一个默认的相片，存放其原来发的相片；建立好相册，把相册的id,放在这条记录的albumId中来；同时根据此记录中的图片地址url，去生成四张缩略图，同时往preview表里写入四条记录。<br />      按照我最初的想法，就是写一个方法，配置为webwok的action或spring的定时任务来跑。方法很好写，但问题是处理起来要费好多时间！最后还是我们大哥提议用sql脚本写，直接在查询分析器里执行，当然这样先不考虑缩略图了。大体的sql 语句如下：<br /><br />/*<br />select count(*) from cn_crazyasp_album_image_preview_TPreview --401786<br />select count(*) from cn_crazyasp_album_image_TImage --182030<br />select count(*) from cn_crazyasp_album_TAlbum --2124<br />*/<br />--复制图片对象表，包括数据和表结构<br />--select * into TImage from cn_crazyasp_album_image_TImage<br />--14秒<br /><br />--select top 100 * from TImage<br />--select top 1 * from cn_crazyasp_album_TAlbum where ownertype='user'<br /><br />--用户图片总数<br />--select count(*) from TImage where ownertype='user' --100012<br /><br />--为所有活动和用户创建对应的相册<br />---INSERT INTO TAlbum (ownerType,ownerId,authorId) select ownerType,ownerId,authorId from TImage group by ownerType,ownerId,authorId<br />--23137行记录<br /><br />--更新图片对象所属的相册的编号<br />/*<br />update TImage set TImage.albumId=(select a.id from TAlbum as a <br />where a.ownerType=TImage.ownerType and a.ownerId=TImage.ownerId and a.authorId=TImage.authorId)<br />*/<br /><br /><br /><br />1.-----------------------------------------------<br />insert into cn_crazyasp_album_image_preview_TPreview(ownerId,url) select a.id,a.url from cn_crazyasp_album_image_TImage as a <br /><br />2.把url颠倒次序<br /><br />UPDATE cn_crazyasp_album_image_preview_TPreview<br />SET url = REVERSE(url)<br /><br />3.把扩展名都去掉<br /><br />UPDATE cn_crazyasp_album_image_preview_TPreview<br />SET url = REPLACE(url, LEFT(url, 4), '')<br /><br />4.再把url颠倒过来<br /><br />UPDATE cn_crazyasp_album_image_preview_TPreview<br />SET url = REVERSE(url)<br /><br />5.把以下语句执行3次<br /><br />INSERT INTO cn_crazyasp_album_image_preview_TPreview<br />      (ownerId, url)<br />SELECT ownerId, url<br />FROM cn_crazyasp_album_image_preview_TPreview a<br />WHERE (id &lt; 182018)<br />6.<br />UPDATE cn_crazyasp_album_image_preview_TPreview<br />SET height = 500, width = 500, type = 'big', nsize = 0<br />WHERE (id > 546051) AND (id &lt; 728069)<br />7.为相册建立封面的sql语句<br />UPDATE cn_crazyasp_album_TAlbum<br />SET image =<br />          (SELECT TOP 1 CONVERT(varchar(30), YEAR(m.inTime), 101) <br />               + '-' + CONVERT(varchar(30), MONTH(m.inTime), 101) + '/' + m.url<br />         FROM cn_crazyasp_album_image_TImage AS m<br />         WHERE m.authorId = cn_crazyasp_album_TAlbum.authorId AND <br />               m.ownerId = cn_crazyasp_album_TAlbum.ownerId<br />         ORDER BY id DESC)<br />WHERE (id &lt; 23138)
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/177276#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 28 Mar 2008 15:25:20 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/177276</link>
        <guid>http://davylee.javaeye.com/blog/177276</guid>
      </item>
      <item>
        <title>老话题：ClientAbortException：socket write error</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/174769" style="color:red;">http://davylee.javaeye.com/blog/174769</a>&nbsp;
          发表时间: 2008年03月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近也遇到了ClientAbortException：socket write error这个错误，但具体情况可能和大家遇到的不一样，我慢慢道来。<br />     环境为:tomcat 5.5 + hibernate 3.1 + spring + velocity + webwork2.2,这是大体的环境。我是在webwork的action里用Velocity做的视图，关键代码如下：<br /><pre name="code" class="htm">
  #foreach($result in $resultList)
    &lt;li>相册名称：$!result.name&lt;/li>
    &lt;li>$!result.images.size()张照片&lt;/li>
  #end
</pre><br />     其中$!resultList是一组相册对象的集合，引起错误的代码就是$!result.images.size()，因为这是在循环里面，而images是相册这个对象里的一个set,即表示相册的图片集合。结果日志里就出现了如下错误（注意：但页面一切正常，结果也是正确的）：<br />Unable to render Velocity Template, '/template/xhtml/album/myAlbum.htm'><br />ClientAbortException:  java.net.SocketException: Software caused connection abort: socket write erro<br />     猜想，没有把握的事情，也只能用猜想这个字眼了。hibernate 的延迟加载我设置的是true,则计算result.images.size()时会有延迟的，但又在一个循环里，因此有可能发生此错误。只是猜想而已，呵呵，哪位大人路过看到，还望指正，小弟不胜感激！<br />    引入一些前人，前辈们的总结供大家参考：<br />------------------------------------------------------------------<br />经常出现的Connection reset by peer: 原因可能是多方面的，不过更常见的原因是：<br />①：服务器的并发连接数超过了其承载量，服务器会将其中一些连接Down掉；<br />②：客户关掉了浏览器，而服务器还在给客户端发送数据；<br />③：浏览器端按了Stop <br />4 ：工程中使用了hibernate，自己写了个filter类，在每个request收到时打开session，在结束时关闭，编程时一直觉得很方便，没想到就是因为这个造成这个错误的。<br />理想情况下这个错误可能永远也不会，但是如果流程中的某一步被阻塞的话，那在这期间connection就一直被占用而不释放。最有可能被阻塞的就是在JSP生成html页面代码这步，一方面可能是页面内容大，response.write的时间长，另一方面可能是用户的网速慢，服务器与用户间传输时间久。当大量这样的情况出现时，就有连接池连接不足，造成页面假死现象，这时就会报如上错误。
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/174769#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 22 Mar 2008 11:58:25 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/174769</link>
        <guid>http://davylee.javaeye.com/blog/174769</guid>
      </item>
      <item>
        <title>Hibernate3映射到PostgreSQL中遇到的小问题！</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/172874" style="color:red;">http://davylee.javaeye.com/blog/172874</a>&nbsp;
          发表时间: 2008年03月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          前天，我用Hibernate3在PostgreSQL下写了个对一个简单对象(Tag)的CRUD操作，并按照Tag.hbm.xml映射，在Linux下的PostgreSQL里建好了表，PostgreSQL版本不详。但启动服务后日志报错，说authorId找不到，我的Tag.hbm.xml里写的是<br /><pre name="code" class="xml">
&lt;property name="authorId" column="authorId" type="integer" not-null="false" length="10"/>
</pre><br />但表中的确有authorId.<br />    后来，我把表中的字段authorId改为了authorid,映射文件不变，就一切ok了！<br />    另人费解，为什么column="authorId"在PostgreSQL必须对应authorid？<br />    不知道大家是否遇到过类似问题。
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/172874#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 17 Mar 2008 11:05:43 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/172874</link>
        <guid>http://davylee.javaeye.com/blog/172874</guid>
      </item>
      <item>
        <title>双眼皮的困惑</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/172862" style="color:red;">http://davylee.javaeye.com/blog/172862</a>&nbsp;
          发表时间: 2008年03月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我的爸爸妈妈都是双眼皮并且都有一头乌黑的头发,我的弟弟都得到了最好的遗传,黑头发和双眼皮儿,而我则是一头枯黄的头发和单眼皮,真是造化弄人.<br />    其实我也不能算纯粹的单眼皮男生,每当我休息不好或睡眠不足时,就会变成双眼皮,仿佛天生的双眼皮一样.所以呀,不少次有同学都以为我做了手术.但,这样的情况一般不会维持很久,一般一天后,我的眼睛就会恢复为单眼皮.<br />但这次发生了例外,55,前几天收尾一个豆渣项目,着急上火忙了2天,再休息一晚上后就变成双眼皮了,奇怪的是,这次是只有一只眼睛是双眼皮,而另一只却是单眼皮.<br />    55,这样看起来太不协调了,一只单眼皮,一只双眼皮,我怎么面对观众啊!本以为一天就恢复了,可目前已经持续了3天了,没有任何恢复的迹象,我都快郁闷死了!<br />   唉,再坚持几天,如果实在恢复不了,只能考虑做外科手术了............
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/172862#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 17 Mar 2008 10:35:41 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/172862</link>
        <guid>http://davylee.javaeye.com/blog/172862</guid>
      </item>
      <item>
        <title>htmlarea下空格会变成乱码请升级htmlarea最终版！</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/170737" style="color:red;">http://davylee.javaeye.com/blog/170737</a>&nbsp;
          发表时间: 2008年03月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          htmlarea真是个不错的在线编辑器，很小，压缩后仅250k,而且是免费的，种种优点使我在不少的地方都用到它。<br />    我用的应该是3.0版吧！但被我胡乱改动过了，比如编码呀，上穿图片啊等都被我改动过了，一直都那么用着。直到昨天，有朋友突然问我，用htalarea编辑时，输入的空格竟然会变成乱码，我有点不相信，仔细地测试了几十遍，发现确实如此，看来以前粗心没有发现。<br />    晚上到它官方去看看，有了更新的版本了，最终版本是2007年7月发布的吧，如果我没有记错的话。而且作者做了说明，说htmlarea到此为止了，以后不再继续维持这个小东西了，也许他认为已经做得够用了吧！我拿到最终版本，替代了旧的版本，简单测试了一下，空格乱码问题已经不存在了。如果哪位遇到和我一样的问题，不妨升级一下版本！
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/170737#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Mar 2008 09:54:15 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/170737</link>
        <guid>http://davylee.javaeye.com/blog/170737</guid>
      </item>
      <item>
        <title>用Hibernate更新不到9万条数据用了2.5小时</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/170730" style="color:red;">http://davylee.javaeye.com/blog/170730</a>&nbsp;
          发表时间: 2008年03月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近与六人行合作，给六人行增加新的功能，但又要照顾好原有的数据，我真的是伤透了脑筋。原来的基于asp下的数据库的设计简直一团糟，但你又不能大幅度修改，以免对原有的asp程序产生重大的影响。由于缺乏系统的规划，而且双方沟通也有障碍，再加之我在整合旧系统方面确实缺乏足够的经验，这项工作进展非常缓慢，我心里自然很是郁闷。<br />    昨天从旧系统中涉及图片的部分，都抽象成了相册对象、图片对象和缩略图对象，并把原来的旧系统中的活动图片表里的数据用select into导到了新表中，不到9万条记录。但表中图片名需要处理一下，即更新9万条数据。我写了一段程序，计算出共多少记录，然后定好了每次取多少记录，计算出取的次数，然后做了个循环，直接用hibernateDao的saveOrUpdate方法逐条更新，中间没有复杂的算法，但在我的机器(台式机,3.0cpu,512M内存)上竟然用了2.5小时，感觉时间是不是长了点？把代码贴在下面，有感兴趣的请说教说教<br /><pre name="code" class="java">
	/**
	 * 此action处理表的图片的url,在最初由旧表导入数据时，url字段里只有图片的名称，&lt;br>
	 * 没有存储目录，我们此方法就是把图片对应的目录也给加上。加目录的规则是，取图片&lt;br>
	 * 上传时间的年，月，组成目录名，然后再和图片名，一起构成图片的url.当然，此url&lt;br>
	 * 相对于$req.contextPath/uploadFiles目录&lt;br>
	 * 使用演示：formatImageUrl.action?myUrl=success&lt;br>
	 * @author Davy Lee
	 * @return String myUrl
	 * @throws Exception
	 */
	public String formatImageUrl() throws Exception
	{
		int totalRecord = 0;
		int totalPage = 0;
		try 
		{
			totalRecord = ((Integer)((ImageList)this.getTableList()).getOption().uniqueResult("select count(t.id) from TImage as t")).intValue();
		} catch (Exception e) 
		{
			log.error(e);
		}
		if(totalRecord % this.getPageSize() == 0)
		{
			totalPage = totalRecord / this.getPageSize();
		}else
		{
			totalPage = totalRecord / this.getPageSize() + 1;
		}
		if(totalPage > 0)
		{
			List result = null;
			log.debug("一共有：" + totalPage + "页!");
			log.debug("每页记录数：" + this.getPageSize());
			log.debug("总共记录数为：" + totalRecord);
			for(int i=1;i&lt;(totalPage+1);i++)
			{
				log.debug("开始处理第i页");
				try 
				{
					//fetch all record of TImage object
					((ImageList)this.getTableList()).setPageNum(i);
					result = ((ImageList)this.getTableList()).getList("from TImage as t ");
				} catch (RuntimeException e) 
				{
					log.error(e);
				}
				if(result != null && result.size() > 0)
				{
					ITImage image = null;
					SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy");
					SimpleDateFormat monthFormat = new SimpleDateFormat("M");
					//year of the upload time
					String year = "";
					//month of the upload time
					String month = "";
					//upload time
					Date inTime = null;
					//the name of the picture
					String picName = "";
					//the final url of picture which saved in database
					String url = "";
					log.debug("be careful!It is time to start ........");
					for(int j=0;j&lt;result.size();j++)
					{		
						log.debug("开始处理第" + i + "页的第" + j + "条记录!");
						image = (ITImage) result.get(j);
						log.debug("current id is :" + image.getId());
						inTime = image.getInTime();
						year = yearFormat.format(inTime);
						month = monthFormat.format(inTime);
						picName = image.getUrl();
						//calculate final url
						url = year + "-" + month + "/" + picName;
						image.setUrl(url);
						//save object
						((ImageList)this.getTableList()).getOption().saveOrUpdate(image);
						//clear variables
						image = null;
						inTime = null;
						year = "";
						month = "";
						picName = "";
						url = "";
						log.debug("结束处理第" + i + "页的第" + j + "条记录!");
					}
					log.debug("be careful!It is time to end ........");
					result = null;
				}
			}		
		}
		return this.getMyUrl();		
	}
</pre><br />代码不是很完整，但能让人看出大体流程，心烦，不多写了........
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/170730#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 13 Mar 2008 09:41:39 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/170730</link>
        <guid>http://davylee.javaeye.com/blog/170730</guid>
      </item>
      <item>
        <title>没想到我也会用唇膏</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/166028" style="color:red;">http://davylee.javaeye.com/blog/166028</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          　　相信大多数男同胞对化妆品不会有什么好感，尤其是有女朋友的男同胞．我就如此，总感觉化妆品只会破坏皮肤，虽然能让你拥有暂时的美丽，却不能让你得到永恒的青春.但直到最近发生了一件事，我才稍稍改变了一下自己对化妆品的态度． <br />　　春节回来后就一直身体不适，连续一个礼拜发烧，头痛，嗓子疼，流鼻涕........我从来不生病的，多少年连感冒都很少，这次如此严重，我甚至怀疑自己得了＂禽流感＂．１０天以后，我的病好了，但好象和春天干燥的天气有关，我又上火了，嘴唇上干裂出许多细小的口子，好疼．中国古代有句话叫＂男子汉大丈夫不怕千均，就怕寸铁＂，这种嘴唇上的裂痕我感觉要比在胳膊上扎几刀还要难受，因为胳膊上扎几刀不会影响吃饭啊，现在连吃饭都不太敢吃，嘴张不大（当然本来嘴就小，呵呵）．兔子急了能上墙，人急了呢？我急了，却突然想到了女朋友用的唇膏，呵呵，立即找来涂上，的确感觉好了不少．第２天醒来，感觉好了很多，似乎没啥问题了，可以吃东西了，呵呵．真没想到唇膏竟然有如此作用，以后看来可以常备几支． <br />　　大家谁遇到和我一样的问题，可以尝试一下我的办法． <br />　　郑重声明： <br />　　１．此方法不能保证对每个人都有效． <br />　　２．对唇膏过敏的人慎用． <br />　　３．由于涂唇膏引起的感情，人身安全等问题本人盖不负责 <br />　　　　　　　　　　　　　　　　　　　　　　　　　　-----------------------笛子
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/166028#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Feb 2008 09:55:01 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/166028</link>
        <guid>http://davylee.javaeye.com/blog/166028</guid>
      </item>
      <item>
        <title>一个人从MyIe到FireFox的转变</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/164894" style="color:red;">http://davylee.javaeye.com/blog/164894</a>&nbsp;
          发表时间: 2008年02月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          其实，我是个忠实的myie的用户，从myie1到myie2一直都是.......<br />    但我现在却再也不再使用myie,而成了FireFox的铁杆用户，而我的转变仅仅就是因为myie2里某个版本每次启动总是提示升级，而且即使我选了“2周内不要提示”，下次启动时它还会不厌其烦地提示我。也许这是mathon的策略吧，鼓励大家用它最新的版本，这是不是流氓了点？当然我更倾向于是开发人员的疏忽。不管是什么原因，虽然不是什么大问题，但的确很烦人，于是我立刻把myie2卸载掉，然后义无返顾地用FireFox的图标拖拽到了快速启动栏上，然后就有了我和FireFox的亲密接触。<br />     有一本书叫《细节决定成败》，我想他说的还是有一定道理的。MyIe2由于这么一个微不足道的瑕疵，就流失了至少象我这样一个用户，也许“我”这个用户对他们庞大的用户群体是微小得可以忽略不计的，但这确实他们的损失，而且他们损失的这个用户还会到论坛上发牢骚！<br />     我写此文无意抨击Mathon,仅仅旨在提醒作为技术人员的我们不要忽视任何一个细节。如果在下言辞有偏颇之处，还望大家见谅！
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/164894#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Feb 2008 21:46:34 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/164894</link>
        <guid>http://davylee.javaeye.com/blog/164894</guid>
      </item>
      <item>
        <title>struts2下velocity做视图如何访问request,session等内置对象</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/158546" style="color:red;">http://davylee.javaeye.com/blog/158546</a>&nbsp;
          发表时间: 2008年01月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Struts2环境下用velocity做视图时访问jsp内置变量的方法。<br />经过研究发现,struts2条件下,velocity里访问jsp那几个内置变量,是需要写完整名字的,比如原来webwork2里的$req在struts2下要写$request<br />具体陈列如下：<br />（1）访问request对象：$request;<br /> (2) 访问response对象：$response;<br /> (3) 访问session对象：$session或$request.session或$request.getSession();<br /> (4) 访问application对象：$application(未亲自测试)
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/158546#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 23 Jan 2008 09:55:48 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/158546</link>
        <guid>http://davylee.javaeye.com/blog/158546</guid>
      </item>
      <item>
        <title>sql server里的uniqueidentifier类型该映射成Hibernate的哪种类型？</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/158544" style="color:red;">http://davylee.javaeye.com/blog/158544</a>&nbsp;
          发表时间: 2008年01月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          sql server2000里的uniqueidentifier类型该映射成Hibernate的哪种类型？<br />最佳答案是:guid<br />具体如下：<pre name="code" class="xml">		&lt;id name="id" type="string" column="Mbph_uid">
			&lt;generator class="guid" />
		&lt;/id></pre>
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/158544#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 23 Jan 2008 09:51:08 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/158544</link>
        <guid>http://davylee.javaeye.com/blog/158544</guid>
      </item>
      <item>
        <title>超级注意复杂整合环境中的Filter-Mapping的顺序--配置单点登陆及UrlRewrite有感</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/157550" style="color:red;">http://davylee.javaeye.com/blog/157550</a>&nbsp;
          发表时间: 2008年01月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          相信大家对Filter都不陌生，当你为你的web站点增加某些特殊功能时，你发现这些功能中有不少都是需要Filter来实现的，需要你在你的web.xml中配置多个功能不同的filter.我最近就在这东西上面吃了不少苦。<br />    我的站点的运行环境是相对复杂的，web.xml里配置了不少Filter,有struts2的FilterDispatcher，有hibernate的OpenSessionInViewFilter，还有一个cas单点登陆的CASFilter（当然，还有UrlRewrite(即url地址重写的Filter),为了简化，不去理它了！），其实我是严格按照手册上来配置的，发现，我的单点登陆只对jsp页面有效果，对于以action结尾的url都起不到作用。有点奇怪吧，呵呵。<br />     其实，许多手册上介绍的只是在单一环境下的配置情况，而事实上我们使用某中小功能，却可能是在非常复杂的环境中。因此，我想了一下，明白了，原来以action结尾的url都被struts2的FilterDispatcher过滤掉了，因为我把CASFilter的mapping 放在了最后面。只要把CASFilter的mapping放置于struts2的FilterDispatcher mapping之上，就一切ok了！配置urlRewrite时我也遇到了此问题。<br />    本文旨在提醒大家注意Fileter mapping的顺序，因此不涉及具体的配置。<br />    附件是CAS单点登陆在struts2和hibernate下的配置，有需要的朋友可以参考。
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/157550#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 19 Jan 2008 10:38:38 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/157550</link>
        <guid>http://davylee.javaeye.com/blog/157550</guid>
      </item>
      <item>
        <title>当你的工程放了struts2.0.11/lib下的所有jars但没放log4j.jar会如何？</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/145503" style="color:red;">http://davylee.javaeye.com/blog/145503</a>&nbsp;
          发表时间: 2007年12月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp; &nbsp;&nbsp; 我们总是需要开始，总是需要尝试，总是不断地去发现，去改进！<br />
&nbsp;&nbsp;&nbsp;&nbsp; 我只是想让struts2跑起来，很低的要求，我大约用了4个晚上的时间，菜，好菜！好多波折啊，好多辛酸！<br />
&nbsp;&nbsp;&nbsp;&nbsp; 这是一篇写给超级才鸟的文章，因此坚决不会发到论坛里去！<br />
&nbsp;&nbsp;&nbsp;&nbsp; 其实发到论坛里的动机很单纯，一个是容易被更多人看到，一个是升级为能投票的会员，行使人间的正义权利！但此篇仅仅发表在blog里，如果某天有人遇到的这样的情况（可能性很小的），可以翻阅此文！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先，下载struts2,地址为：http://struts.apache.org/,这里看到的是2.0.11GA,就用这个版本！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 随便在硬盘上找个地方建立ROOT /WEB-INF/,classes和lib目录，当然可以在ROOT下建立个index.htm什么的文件，欢迎一下！好，开始动手了，把struts2.0.11/lib下面的jar包都拷贝到ROOT/WEB-INF/lib目录里，都拷贝进去！这还不够，再找点spring的文件，把spring/的常用的那几个jar也拷贝到lib目录去，包括：spring.jar，spring-aop.jar，spring-beans.jar，spring-context.jar，spring-core.jar，spring-mock.jar，spring-support.jar，spring-web.jar；然后在ROOT/WEB-INF/ 下建立web.xml文件，内容如下：<br />
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;UTF-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;</span><span class="tag-name">web-app</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;WebApp_9&quot;</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;2.4&quot;</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">&quot;http://java.sun.com/xml/ns/j2ee&quot;</span><span>&nbsp;</span><span class="attribute">xmlns:xsi</span><span>=</span><span class="attribute-value">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span><span>&nbsp;</span><span class="attribute">xsi:schemaLocation</span><span>=</span><span class="attribute-value">&quot;http://java.sun.com/xml/ns/j2ee&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">display-name</span><span class="tag">&gt;</span><span>Struts&nbsp;Blank</span><span class="tag">&lt;/</span><span class="tag-name">display-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">context-param</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">param-name</span><span class="tag">&gt;</span><span>contextConfigLocation</span><span class="tag">&lt;/</span><span class="tag-name">param-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">param-value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/WEB-INF/classes/applicationContext-*.xml&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">param-value</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">context-param</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">listener</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">listener-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.web.context.ContextLoaderListener&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">listener-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">listener</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">filter</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>struts2</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">filter-class</span><span class="tag">&gt;</span><span>org.apache.struts2.dispatcher.FilterDispatcher</span><span class="tag">&lt;/</span><span class="tag-name">filter-class</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">filter</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">filter-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>struts2</span><span class="tag">&lt;/</span><span class="tag-name">filter-name</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>/*</span><span class="tag">&lt;/</span><span class="tag-name">url-pattern</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">filter-mapping</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">welcome-file-list</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">welcome-file</span><span class="tag">&gt;</span><span>index.html</span><span class="tag">&lt;/</span><span class="tag-name">welcome-file</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">welcome-file-list</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="tag">&lt;/</span><span class="tag-name">web-app</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
然后到ROOT/WEB-INF/classes/下建立struts.xml文件，内容如下：<br />
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;UTF-8&quot;</span><span>&nbsp;</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;!DOCTYPE&nbsp;struts&nbsp;PUBLIC&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&quot;-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN&quot;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://struts.apache.org/dtds/struts-2.0.dtd&quot;<span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="tag">&lt;</span><span class="tag-name">struts</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">constant</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;struts.enable.DynamicMethodInvocation&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;false&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">constant</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;struts.devMode&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;false&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comments">&lt;!--&nbsp;Add&nbsp;packages&nbsp;here&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="tag">&lt;/</span><span class="tag-name">struts</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
ok,工作做完了，接下来把此目录部署到tomcat里成一个站点，补充一下：tomcat用5.5.25,jdk用5.0.<br />
好了，你可以启动你的tomcat了，启动tomcat，看tomcat/logs/catalina.2007-12-03.log,当然是你运行时的日期，呵呵！<br />
发现了什么，我想你一定会发现以下的错误：<br />
Actual exception<br />
Could not load class org.apache.struts2.jsf.FacesSetupInterceptor. Perhaps it exists but certain dependencies are not available? - interceptor - jar:file:/D:/website/MedicalChina/ROOT/WEB-INF/lib/struts2-jsf-plugin-2.0.11.jar!/struts-plugin.xml:36:97<br />
..............................................<br />
Caused by: java.lang.NoClassDefFoundError: javax/faces/lifecycle/Lifecycle(这句很重要，重要个屁，这句一点用也没有)<br />
，貌似缺少jar包，但不知道缺少哪一个，呵呵！<br />
<br />
在下经过详细的考证，发现缺少的是log4j.jar，呵呵，你再把log4j.jar放到lib里，重起tomcat就一切正常了！<br />
很简单吧，是简单，但你能从包错信息&ldquo;Caused by: java.lang.NoClassDefFoundError: javax/faces/lifecycle/Lifecycle&rdquo;想到缺少的是log4j.jar这个包吗？我花了n个小时才明白了这个事情！<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以，我把它记录下来，供以后查阅，更供大家参考！<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 赶兴趣的，可以去查源码，看为啥如此，呵呵！
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/145503#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 03 Dec 2007 00:24:00 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/145503</link>
        <guid>http://davylee.javaeye.com/blog/145503</guid>
      </item>
      <item>
        <title>质疑Struts2的版本问题！</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/145386" style="color:red;">http://davylee.javaeye.com/blog/145386</a>&nbsp;
          发表时间: 2007年12月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp; 终于下定决心迁移到Struts2上来，于是去下载Struts2,在地址：http://people.apache.org/builds/struts/这里看到的最新版本是2.10,可是从地址：http://struts.apache.org/这里看到的却是2.0.11GA,如果以2.0.11为正确 的话，那2.1.0是怎么来的！大家帮小弟看下！感谢！
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/145386#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 02 Dec 2007 08:57:13 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/145386</link>
        <guid>http://davylee.javaeye.com/blog/145386</guid>
      </item>
      <item>
        <title>星际争霸混战有感</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/140424" style="color:red;">http://davylee.javaeye.com/blog/140424</a>&nbsp;
          发表时间: 2007年11月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 星际争霸作为一款即时战略游戏,堪称经典中的经典(经典掉进酒缸里,醉(最)经典),我偶尔玩之.&nbsp;<br />
&nbsp;&nbsp;&nbsp; 昨天晚上,心痒难耐,遂又上浩方,在hunter在3v3,逐鹿中原.&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;混战真的是一种艺术,需要密切地配合,一般来说,配合的好就一方往往能取得战斗的胜利.&nbsp;但要配合的好,你就要信任你的盟友,但你千万不要依赖你的盟友.因为人是自私的,尤其是当自身的利益受到威胁的时候.当你们家基地受到攻击的时候,你的盟友如果没有受阻并且有兵有可派而且他的基地没有任何威胁的情况下,他&nbsp;才能出兵援助你,呵呵,在3v3的混战中想满足这样的条件也是不容易的.你真的能坚持到他的援兵赶到的时候么,就算能坚持到,你也许已经被重创了,再者说他的兵未必就真的能解除你的危机.你说你能依赖你的盟友吗?&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;再举个例子,假设你们家遭受了隐形兵的攻击,虽然你有兵,但没有反隐形的装备,因为你看到你的盟友升级雷达了,&nbsp;<br />
你自己就没去研究,这时你就告诉你的盟友,需要雷达帮助.但如果此时你的盟友也在遭受隐形兵的攻击,他肯定得用雷&nbsp;<br />
达帮助他自己,因为雷达能量是有限的,即使满的能量下也只能用4次左右.结果你全军覆没.对于盟友,你可以相信他,但&nbsp;<br />
绝不可以依赖他.&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现实种更是如此啊,读点历史的人就不会忘记第二次世界大战那段悲惨的岁月.当德国军队攻击荷兰的时候,荷兰&nbsp;<br />
把希望寄托在盟友的法国,而法国怕迁怒于德国,而没有及时出兵援助,最后法国被迫对德宣战,但仍然没有出兵,结果&nbsp;<br />
荷兰被迫投降;接下来就是法国,法国总是希望盟军(英,美)援助,但盟军仍然迟迟未到,因为英国有大海做天然屏障,德国&nbsp;<br />
的坦克很难打到本土,所以呢,他们很保守.结果法国损失惨重.我说这些的目的就是要告诉大家一个道理,一个铁打的&nbsp;<br />
道理:不要依赖任何人,无论他是多么好的人,你可以相信他,可以借助他,但绝不能依赖他,我们可以依赖的只有我们自&nbsp;<br />
己,只有自己的实力才是值得依赖的,打架就要靠自己的拳头,枪杆子里才能出政权!&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;星际争霸的混战还能告诉我们一个道理,就是做事情要讲究策略.&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在3v3的混战中,最常用的一种战术就是,先弄点碉堡啥的在初期堵住一家,然后集中3家的兵力冲击两外2家,呵呵,&nbsp;<br />
在兵力占绝对优势的情况下,只要不是有特别&quot;菜&quot;的,等被堵住的那家冲出来,他的2个盟友估计不死也剩不下什么东西&nbsp;<br />
了.这就是策略.集中优势兵力,分散敌人力量.仍然拿2战来说,看德国人怎么做的?德国打荷兰的时候和法国结盟达成&nbsp;<br />
互不侵犯的共识,然后放心地打荷兰;德国打法国的时候,偷偷地和英国及苏联达成共识,互不侵犯,然后放心地去打法&nbsp;<br />
国,集中最具优势的兵力(当然,苏联当时出兵攻击了法国,分了一杯羹).这就是德国的策略,所以在战争的前期,盟军是节&nbsp;<br />
节失利,德国一度占尽先机.从这里也可以看出,没有真正意义的盟友,也没有永远的盟友,盟友只是暂时的一种利用与&nbsp;<br />
被利用的管理,是双方的一种妥协.一旦双方撕破脸皮,立刻宣战,甚至不宣而战.&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其实如果认真去总结,星际争霸中确实能发现好多道理,即使在今天,还是值得我们去学习借鉴的.&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/140424#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 14 Nov 2007 10:26:52 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/140424</link>
        <guid>http://davylee.javaeye.com/blog/140424</guid>
      </item>
      <item>
        <title>高手的强悍的样式表(css)</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/140149" style="color:red;">http://davylee.javaeye.com/blog/140149</a>&nbsp;
          发表时间: 2007年11月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font face="Arial">这个是含有表达式的样式表,可以随分辨率的变化自动调整,这个不是我原创了,只是收藏着方便查找,也给有需要的朋友提供个方便!<br />
</font><font face="Arial">#maxw {<br />
&nbsp;PADDING-RIGHT: 30px; <br />
&nbsp;PADDING-LEFT: 30px; <br />
&nbsp;BACKGROUND: #fff; <br />
&nbsp;PADDING-BOTTOM: 8px;<br />
&nbsp;MARGIN: 0px auto;<br />
&nbsp;WIDTH: expression( documentElement.clientWidth &gt; 940 ? (documentElement.clientWidth == 0 ? (body.clientWidth &gt;940 ? &quot;940&quot; : &quot;auto&quot;) : &quot;940px&quot;) : &quot;auto&quot; ); <br />
&nbsp;PADDING-TOP: 8px;<br />
&nbsp;max-width: 964px<br />
}</font></p>
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/140149#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 Nov 2007 11:38:59 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/140149</link>
        <guid>http://davylee.javaeye.com/blog/140149</guid>
      </item>
      <item>
        <title>多对多条件下的一条复杂的HQL的语句</title>
        <author>DavyLee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://davylee.javaeye.com">DavyLee</a>&nbsp;
          链接：<a href="http://davylee.javaeye.com/blog/140110" style="color:red;">http://davylee.javaeye.com/blog/140110</a>&nbsp;
          发表时间: 2007年11月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp; 最近遇到一个烦人的问题,费了不少时间才解决出来,把它贴出来分享!<br />
&nbsp;&nbsp;&nbsp;&nbsp; 问题如下:<br />
&nbsp;&nbsp;&nbsp;&nbsp; 产品对象TProduct和标签对象TTag,是通过中间表连接的双向多对多关联关系,要求是列出所有的标签,按标签的使用次数倒排序(即哪个标签关联的产品数最多,哪个标签放在第一个).<br />
&nbsp;&nbsp;&nbsp;&nbsp;省略掉pojo的代码,其映射文件如下:<br />
&nbsp;&nbsp;&nbsp; ----------------------TProduct.hbm.xml-----------------------<br />
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">id</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;id&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;integer&quot;</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;id&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">generator</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;native&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="tag"><span class="tag-name">id</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;name&quot;</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;name&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;string&quot;</span><span>&nbsp;</span><span class="attribute">not-null</span><span>=</span><span class="attribute-value">&quot;false&quot;</span><span>&nbsp;</span><span class="attribute">length</span><span>=</span><span class="attribute-value">&quot;50&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">set</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;tags&quot;</span><span>&nbsp;</span><span class="attribute">table</span><span>=</span><span class="attribute-value">&quot;TableLink_Product_Tags&quot;</span><span>&nbsp;</span><span class="attribute">order-by</span><span>=</span><span class="attribute-value">&quot;tagId&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">key</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;productId&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">many-to-many</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;tagId&quot;</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;TTag&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="tag"><span class="tag-name">set</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
<br />
------------------------TTag.hbm.xml-------------------------<br />
<div class="code_title">xml 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">id</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;id&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;integer&quot;</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;id&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">generator</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;native&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="tag"><span class="tag-name">id</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;name&quot;</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;name&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;string&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">set</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;products&quot;</span><span>&nbsp;</span><span class="attribute">table</span><span>=</span><span class="attribute-value">&quot;TableLink_Product_Tags&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">key</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;tagId&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">many-to-many</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;TProduct&quot;</span><span>&nbsp;</span><span class="attribute">column</span><span>=</span><span class="attribute-value">&quot;productId&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span> </li>
    <li class=""><span></span><span class="tag"><span class="tag-name">set</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span> </span></li>
</ol>
</div>
<br />
条件很简单,就这么多,要求列出所有的标签,按照其关联的产品的数量倒排序(即标签使用次数倒排序),难就难在其排序上,<br />
<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>select&nbsp;&nbsp;&nbsp;t&nbsp;&nbsp;from&nbsp;TTag&nbsp;as&nbsp;t&nbsp;order&nbsp;by&nbsp;t.products.size&nbsp;desc&nbsp;&nbsp;&nbsp;</span></span> </li>
</ol>
</div>
<br />
这样的写法肯定是不行的,生成的sql语句是错误的!<br />
<br />
正确的写法如下:<br />
<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>select&nbsp;a&nbsp;from&nbsp;TProduct&nbsp;&nbsp;as&nbsp;t&nbsp;inner&nbsp;join&nbsp;t.tags&nbsp;as&nbsp;a&nbsp;group&nbsp;by&nbsp;a.id,a.name&nbsp;order&nbsp;by&nbsp;count(t.id)&nbsp;desc&nbsp;&nbsp;</span></span> </li>
</ol>
</div>
<p><br />
这种写法才是正确的.<br />
<br />
这个问题看起来简单,写起来麻烦,如果用sql写,我觉得还是比较好写的,而用hql来写,感觉有点抽象,大家还有别的实现方法么?<br />
<br />
此外,还发现了一个sql语句的小特点,这个不能算问题,只是比较容易产生错误!<br />
<br />
看这个sql语句:<br />
<br />
select * from Table_Tag where id in(8,7,6,3,9)<br />
<br />
这样得出的结果其顺序又会如何呢?<br />
<br />
其实这么写的结果的显示顺序并非:8,7,6,3,9<br />
<br />
应该是:3,6,7,8,9<br />
<br />
所以为了追求结果排序,where id in()这个想法是不可取的</p>
          <br/>
          <span style="color:red;">
            <a href="http://davylee.javaeye.com/blog/140110#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 13 Nov 2007 10:09:35 +0800</pubDate>
        <link>http://davylee.javaeye.com/blog/140110</link>
        <guid>http://davylee.javaeye.com/blog/140110</guid>
      </item>
  </channel>
</rss>