﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-DreamTiger的梦幻乐园-随笔分类-Java</title><link>http://www.blogjava.net/DreamTiger/category/5610.html</link><description>随便写写，自得其乐，生活就是这样</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 05:58:41 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 05:58:41 GMT</pubDate><ttl>60</ttl><item><title>Hibernate中DetachedCriteria使用注意点-1</title><link>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32203.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Thu, 23 Feb 2006 13:13:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32203.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/32203.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32203.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/32203.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/32203.html</trackback:ping><description><![CDATA[代码一：<br><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;DetachedCriteria&nbsp;dc&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;DetachedCriteria.forClass(classT,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br>&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.eq(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">purePeptide</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;purePeptide));<br>&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.eq(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">project.id</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;projectId));<br>&nbsp;&nbsp;&nbsp;&nbsp;dc.addOrder(Order.asc(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">peptide</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br></span></div><br>代码二：<br><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;DetachedCriteria&nbsp;dc&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;DetachedCriteria.forClass(classT,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br>&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.eq(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p.purePeptide</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;purePeptide));<br>&nbsp;&nbsp;&nbsp;&nbsp;dc.add(Restrictions.eq(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">project.id</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;projectId));<br>&nbsp;&nbsp;&nbsp;&nbsp;dc.addOrder(Order.asc(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">peptide</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br></span></div><br>两段代码唯一的区别就是第二句是使用"purePeptide"还是"p.purePeptide"。<br>代码一产生的sql语句：<br>select this_.purePeptide as y1_, this_.peptide as y2_ from SequestPeptide this_ where y1_ = 'NASILLEELDLEK' and this_.project_id=1 order by y2_ asc<br>运行会报Unknown column name:Y1_<br><br>代码二产生的正确的sql语句：<br>select this_.purePeptide as y1_, this_.peptide as y2_ from SequestPeptide this_ where this_.purePeptide='NASILLEELDLEK' and this_.project_id=1 order by y2_ asc<br><img src ="http://www.blogjava.net/DreamTiger/aggbug/32203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2006-02-23 21:13 <a href="http://www.blogjava.net/DreamTiger/archive/2006/02/23/32203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate中将选择出来的结果组合为另一个对象列表</title><link>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32118.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Thu, 23 Feb 2006 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32118.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/32118.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32118.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/32118.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/32118.html</trackback:ping><description><![CDATA[<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;List</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">PeptideCountForm</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;getPurePeptideCountForms(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;purePeptide)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;hql&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">select&nbsp;new&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;PeptideCountForm.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">.getName()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">(proj.id,&nbsp;proj.name,&nbsp;count(sp.id))&nbsp;from&nbsp;Project&nbsp;proj,&nbsp;SequestPeptide&nbsp;sp&nbsp;where&nbsp;sp.purePeptide&nbsp;=&nbsp;?&nbsp;and&nbsp;sp.project.id&nbsp;=&nbsp;proj.id&nbsp;group&nbsp;by&nbsp;proj.id,&nbsp;proj.name</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br>&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;objs&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;(List)&nbsp;getHibernateTemplate().find(hql,&nbsp;purePeptide);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;RcpaObjectUtils.asList(objs);<br>&nbsp;&nbsp;}<br></span></div><br><br>关键的地方就是：<br>1、在HQL中PeptideCountForm必须是全路径的classname<br>2、PeptideCountForm有一个完全吻合的constructor<br><img src ="http://www.blogjava.net/DreamTiger/aggbug/32118.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2006-02-23 16:20 <a href="http://www.blogjava.net/DreamTiger/archive/2006/02/23/32118.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate中用Projection实现Lazy loading</title><link>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32094.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Thu, 23 Feb 2006 05:42:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32094.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/32094.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2006/02/23/32094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/32094.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/32094.html</trackback:ping><description><![CDATA[<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class&nbsp;classT&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;SequestPeptide.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Criteria&nbsp;criteria&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;arg0.createCriteria(classT,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria.add(Restrictions.eq(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">project.id</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;projectId));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria.setFirstResult(startRecord);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria.setFetchSize(recordCount);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria.setMaxResults(recordCount);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria.addOrder(Order.asc(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">peptide</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Projection&nbsp;projection</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">Projections.projectionList()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.add(&nbsp;Projections.property(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p.id</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">),&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">id</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.add(&nbsp;Projections.property(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p.peptide</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">),&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">peptide</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.add(&nbsp;Projections.property(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p.dtaFilename</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">),&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">dtaFilename</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.add(&nbsp;Projections.property(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">p.outFilename</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">),&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">outFilename</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;criteria.setProjection(projection).setResultTransformer(&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;AliasToBeanResultTransformer(classT)&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;criteria.list();<br></span></div><br><img src ="http://www.blogjava.net/DreamTiger/aggbug/32094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2006-02-23 13:42 <a href="http://www.blogjava.net/DreamTiger/archive/2006/02/23/32094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL中Text, MeduimText, LongText在Hibernate中的设置</title><link>http://www.blogjava.net/DreamTiger/archive/2006/02/04/29549.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Sat, 04 Feb 2006 13:47:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2006/02/04/29549.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/29549.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2006/02/04/29549.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/29549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/29549.html</trackback:ping><description><![CDATA[在Hibernate的配置中，我目前是采用Annotation的方式，不过原理应该都一样。<br><br>对于如下的属性：<br>&nbsp; private String dtaContent;<br><br>&nbsp; @Lob(type = LobType.CLOB, fetch = FetchType.LAZY)<br>&nbsp; @Column<br>&nbsp; public String getDtaContent() {<br>&nbsp;&nbsp;&nbsp; return dtaContent;<br>&nbsp; }<br>Hibernate会默认对应到MySQL的Text上去。Text是有65535字节限制的。<br><br><br>改成：<br>&nbsp; private String dtaContent;<br>
<br>
&nbsp; @Lob(type = LobType.CLOB, fetch = FetchType.LAZY)<br>
&nbsp; @Column(length = 16777215)<br>
&nbsp; public String getDtaContent() {<br>
&nbsp;&nbsp;&nbsp; return dtaContent;<br>
&nbsp; }<br>
Hibernate会对应到MySQL的MeduimText上去。MedumnText最大16777215字节。<br><br>改成：<br>
&nbsp; private String dtaContent;<br>

<br>

&nbsp; @Lob(type = LobType.CLOB, fetch = FetchType.LAZY)<br>

&nbsp; @Column(length = 16777216)<br>

&nbsp; public String getDtaContent() {<br>

&nbsp;&nbsp;&nbsp; return dtaContent;<br>

&nbsp; }<br>

Hibernate会对应到MySQL的LongText上去。LongText最大2147483647字节。<br>
<br><br>
<br><img src ="http://www.blogjava.net/DreamTiger/aggbug/29549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2006-02-04 21:47 <a href="http://www.blogjava.net/DreamTiger/archive/2006/02/04/29549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts中&lt;html:select&gt;多选默认值的设置</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/23/25268.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Fri, 23 Dec 2005 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/23/25268.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/25268.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/23/25268.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/25268.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/25268.html</trackback:ping><description><![CDATA[今天遇到一个问题就是，如何设置&lt;html:select&gt;多选情况下的默认值，网上有些人说下面是可行的：<br>
&lt;html:form action="/projectUpdate.do" focus="experimenters"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:select property="experimenters" size="10" multiple="true" value="experimenters"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:optionsCollection
name="msms_experimenterlist" value="email" label="email"/&gt; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/html:select&gt;<br>
....<br>
&lt;/html:form&gt;<br>
这里，experimenters是projectForm的属性，类型为String[]<br>
msms_experimenterlist是保存在request中的一个set&lt;UserInfo&gt;，email是UserInfo的属性，类型为String。<br>
<br>
显示以及传递到/projectUpdate.do对应的Action都正常，但是如果给projectForm的experimenters设置了初始值，在真实显示的时候，多选框中并没有设置这些初始值，很是麻烦。<br>
<br>
虽然最后通过jsp的方法解决，总是不爽阿：<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:select property="experimenters" size="10" multiple="true" value="experimenters"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%ProjectForm projForm = (ProjectForm) request.getAttribute("projectForm");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HashSet&lt;String&gt;
oldExperimenters = new
HashSet&lt;String&gt;(Arrays.asList(projForm.getExperimenters()));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List userList = (List)request.getAttribute("msms_experimenterlist");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0;i &lt; userList.size();i++){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserInfo user = (UserInfo) userList.get(i);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (oldExperimenters.contains(user.getEmail())){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
out.print("&lt;option value=\"" + user.getEmail() + "\" selected&gt;" +
user.getEmail());<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
out.print("&lt;option value=\"" + user.getEmail() + "\"&gt;" +
user.getEmail());<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/html:select&gt;<br>
<br>
<br>
<img src ="http://www.blogjava.net/DreamTiger/aggbug/25268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-23 23:04 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/23/25268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ant + Tomcat 本地部署怪招</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/14/23944.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Wed, 14 Dec 2005 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/14/23944.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/23944.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/14/23944.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/23944.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/23944.html</trackback:ping><description><![CDATA[由于通过tomcat的manager无法完全清除msms目录，导致重新deploy会无效，于是想出了怪招：<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="deploy-local" description="Install application in Local Tomcat"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;echo message="deploying to local ..." /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;exec executable="cmd" os="Windows 2000" vmlauncher="false"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;arg line="/c start ${tomcat.dir}/bin/shutdown.bat" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/exec&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;delete dir="${tomcat.webapps}/${context-path}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;copy todir="${tomcat.webapps}" overwrite="true"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fileset dir="${dist}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;include name="${context-path}.war" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/copy&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;exec
executable="${tomcat.dir}/bin/startup.bat" os="Windows 2000"
spawn="true" vmlauncher="false"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;arg line="/c start ${tomcat.dir}/bin/startup.bat" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/exec&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
首先通过调用shutdown.bat，而且不设置spawn="true"，这样就会有一个cmd窗口在那里留着，可以看着tomcat停掉了，然后关
闭这个cmd窗口，ant才会继续向下执行删除和拷贝，然后自动启动tomcat。虽然看上去比较怪，好歹还算管用，哈哈。<br>
<img src ="http://www.blogjava.net/DreamTiger/aggbug/23944.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-14 21:26 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/14/23944.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate 3.1 编译注意事项</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/14/23943.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Wed, 14 Dec 2005 13:22:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/14/23943.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/23943.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/14/23943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/23943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/23943.html</trackback:ping><description><![CDATA[下载了Hibernate3.1编译，无论通过build.bat还是ant jar都会出错。前者会说找不到javac，我晕倒。后者说antlr/Tool找不到。<br>
<br>
后来在hibernate网站上(http://www.hibernate.org/6.html)看到：<br>
<h3>Fixing Ant classpath/plugin issues</h3>
<p>You may need to add <tt>junit.jar</tt> to your <tt>$ANT_HOME/lib</tt> directory if it is not there already, or alternatively remove the <tt>$ANT_HOME/lib/ant-junit.jar</tt> file. For Hibernate3, repeat the steps above, but also copy <tt>lib/antlr.jar</tt> or remove the <tt>$ANT_HOME/lib/ant-antlr.jar</tt> file.</p>
<p>These
steps are necessary because Ant ships with plugin stub libraries in its
classpath, so Ant plugins for JUnit or Antlr can't be used without
copying or removing files. If you don't have Ant installed on your
machine or don't want to mess with the default Ant installation then,
on Windows, just run <tt>build.bat</tt> to use the bundled Ant libraries.<br>
</p>
<p>虽然他说可以用build.bat来进行，但我也不知道他为什么会找不到javac，反正我把antlr.jar拷到ant的lib下面，就OK了。<br>
</p>
<br>
<br>
<img src ="http://www.blogjava.net/DreamTiger/aggbug/23943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-14 21:22 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/14/23943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ant+Tomcat自动部署成功案例</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/09/23100.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Fri, 09 Dec 2005 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/09/23100.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/23100.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/09/23100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/23100.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/23100.html</trackback:ping><description><![CDATA[昨天的错误至今无法修正，即使重装了Tomcat也不行。<br>
<br>
不过，deploy到两台linux服务器上倒都成功了。<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="list" classname="org.apache.catalina.ant.ListTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="deploy-web" description="Install application in Local Tomcat"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;echo message="deploying to web ..." /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;deploy
url="http://172.16.1.20:8080/manager"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}" path="/${context-path}"
war="file:${dist}/${context-path}.war" update="true" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="list-web"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;echo message="list web tomcat ..." /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;list
url="http://172.16.1.20:8080/manager"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
<br>
这里跟昨天的代码有一点不一样：<br>
1、localWar改成了war。<br>
原来更新远程服务器的时候，总是显示更新成功，但是到webapps目录下总是没有相应的war文件，通过调用<br>
ant list-web<br>
发现，有一个context-path是dist/msms，而且是stop状态。哦，原来localWar的意思不是指开发的机器的local path，而是指把这个war被写到服务器的什么地方。改成war就正常了。<br>
<br>
2、不需要判断是否已经deploy进而调用undeploy了，直接通过update="true"更新就可以了。<br>
<img src ="http://www.blogjava.net/DreamTiger/aggbug/23100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-09 11:06 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/09/23100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ant+Tomcat自动部署的怪问题</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/08/23006.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Thu, 08 Dec 2005 10:13:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/08/23006.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/23006.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/08/23006.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/23006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/23006.html</trackback:ping><description><![CDATA[今天研究对象是Ant，用于对msms系统进行Tomcat的自动部署。<br>
<br>
遇到一个怪问题，百思不得其解：<br>
通过ant depoly可以把msms.war部署到tomcat上。当然，要求这时候webapps下面没有msms目录。<br>
看tomcat的纪录，加载msms.war正常，网页也可以打开。<br>
<br>
通过ant undeploy，可以把msms卸载。Tomcat显示：<br>
Undeploying context [/msms]<br>
正常卸载了。问题是，去看webapps目录下面，居然有一个msms目录的残骸，里面保留的目录是<br>
WEB-INF\lib<br>
有以下几个文件残留着：<br>
commons-digester.jar<br>
commons-validator.jar<br>
struts.jar<br>
<br>
这时候msms目录也无法手工删除，必须停掉tomcat后才能删除。<br>
<br>
我装的tomcat是5.5。不知道是否还有人遇到过这种情况，我反正是晕了。<br>
<br>
build.properties文件如下：<br>
tomcat.dir=C:/ApacheGroup/Tomcat5.5<br>
tomcat.webapps=C:/ApacheGroup/Tomcat5.5/webapps<br>
tomcat.manager.url=http://localhost:8080/manager<br>
tomcat.manager.username=admin<br>
tomcat.manager.password=xxxxxxxx<br>
<br>
build.xml文件如下：<br>&lt;?xml version="1.0"?&gt;<br>
&lt;project name="msms" default="compile" basedir="."&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;!-- Ant Tomcat Task Definition --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="install" classname="org.apache.catalina.ant.InstallTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="list" classname="org.apache.catalina.ant.ListTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="start" classname="org.apache.catalina.ant.StartTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="stop" classname="org.apache.catalina.ant.StopTask"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${tomcat.dir}/server/lib/catalina-ant.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;property name="build" value="build" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="dist" value="dist" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="src" value="src/java" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="test" value="src/test" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="war-config" value="src/config" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="report" value="report" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="lib" value="lib" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="web" value="web" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="meta" value="meta" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property name="context-path" value="${ant.project.name}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;property file="build.properties" /&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;path id="build.classpath"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fileset file="${lib}/*.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fileset dir="${tomcat.dir}/common/lib"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;include name="*.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fileset dir="${tomcat.dir}/common/endorsed"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;include name="*.jar" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement path="${build}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/path&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;!-- Hibernate Tool Task Definition --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="build.classpath" /&gt;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &lt;target name="clean"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;echo message="Cleaning up the build and dist directories" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;delete dir="${build}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;mkdir dir="${build}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;delete dir="${dist}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;mkdir dir="${dist}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="copy-resources"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;copy todir="${build}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fileset dir="${src}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;exclude name="**/*.java" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;exclude name="**/*.hbm.xml" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/copy&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="compile" depends="copy-resources"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;javac destdir="${build}" srcdir="${src}:${test}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath refid="build.classpath" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/javac&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="initdb" depends="compile"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;hibernatetool destdir="${build}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;path location="${build}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classpath&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&lt;annotationconfiguration
configurationfile="src/java/hibernate.cfg.xml" /&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;hbm2ddl create="true" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/hibernatetool&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="run" depends="compile"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;java fork="true"
classname="cn.ac.rcpa.msms.tools.ProjectManager"
classpathref="build.classpath"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath path="${build}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;arg value="${action}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;arg value="${project}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;arg value="${description}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/java&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="test" depends="compile" description="run junit test"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;delete dir="${report}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;mkdir dir="${report}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;junit dir="." fork="true"
printsummary="on" haltonfailure="false" failureproperty="tests.failed"
showoutput="true"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classpath refid="build.classpath" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;formatter type="brief" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;batchtest todir="${report}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fileset dir="${build}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;include name="**/*Test.*"
/&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;include name="**/Test*.*"
/&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/batchtest&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/junit&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fail if="tests.failed"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ***********************************************************<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **** One or more tests failed! Check the output ... ****<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ***********************************************************<br>
&nbsp;&nbsp;&nbsp; &lt;/fail&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="create-war" depends="clean, compile" description="build release war"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;echo message="creation the WAR file...${context-path}.war" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;war destfile="${dist}/${context-path}.war" webxml="${meta}/web.xml"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;classes dir="${build}"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;exclude name="**/*Test.*" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;exclude name="**/Test*.*" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;exclude name="hibernate.cfg.xml" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/classes&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;lib dir="${lib}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;fileset dir="${web}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;zipfileset dir="${war-config}" prefix="WEB-INF/classes" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/war&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!--&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &lt;scp file="${dist}/${context-path}.war"
todir="root:${password}@172.16.1.20:/usr/local/tomcat/webapps"
trust="true" /&gt; --&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="deploy" description="Install application in Tomcat"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;deploy
url="${tomcat.manager.url}" username="${tomcat.manager.username}"
password="${tomcat.manager.password}" path="/${context-path}"
localWar="file:${dist}/${context-path}.war" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="undeploy" description="Remove application in Tomcat" if="already.deployed"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;undeploy
url="${tomcat.manager.url}" username="${tomcat.manager.username}"
password="${tomcat.manager.password}" path="/${context-path}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="reload" description="Reload application in Tomcat"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;reload
url="${tomcat.manager.url}" username="${tomcat.manager.username}"
password="${tomcat.manager.password}" path="/${context-path}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="start" description="Start Tomcat application"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;start
url="${tomcat.manager.url}" username="${tomcat.manager.username}"
password="${tomcat.manager.password}" path="/${context-path}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="stop" description="Stop Tomcat application"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;stop
url="${tomcat.manager.url}" username="${tomcat.manager.username}"
password="${tomcat.manager.password}" path="/${context-path}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="list" description="List Tomcat applications"&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;list
url="${tomcat.manager.url}" username="${tomcat.manager.username}"
password="${tomcat.manager.password}" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
<br>
&nbsp;&nbsp;&nbsp; &lt;target name="deploy-application" description="Compile the web application..."&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;echo message="Undeploying the application only if it's deployed..." /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;available
file="${tomcat.webapps}/${context-path}.war"
property="already.deployed" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;antcall target="undeploy" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;antcall target="create-war" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;antcall target="deploy" /&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/target&gt;<br>
&lt;/project&gt;<br>
<br>
<br>
<img src ="http://www.blogjava.net/DreamTiger/aggbug/23006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-08 18:13 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/08/23006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一篇关于hibernate中Lazy initialization的文章</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/07/22817.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Wed, 07 Dec 2005 01:52:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/07/22817.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/22817.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/07/22817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/22817.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/22817.html</trackback:ping><description><![CDATA[<a href="http://www.jroller.com/page/kbaum/20040708#orm_lazy_initialization_with_dao">http://www.jroller.com/page/kbaum/20040708#orm_lazy_initialization_with_dao</a><img src ="http://www.blogjava.net/DreamTiger/aggbug/22817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-07 09:52 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/07/22817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>包含hbm.xml、XDoclet和Annotation方式的hibernate.cfg.xml</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/06/22735.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Tue, 06 Dec 2005 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/06/22735.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/22735.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/06/22735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/22735.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/22735.html</trackback:ping><description><![CDATA[用hibernate一段时间，期间写过hbm.xml，也通过XDoclet产生过Java，<br>
最后采用的是annotation方式。保留一份包含了hbm.xml方式和XDoclet<br>
方式的hibernate.cfg.xml文件，以备查询。<br>
<br>
&lt;?xml version="1.0"?&gt;<br>
&lt;project name="RcpaMSMSDisplay" default="compile" basedir="."&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;property name="src.dir" value="${basedir}/src" /&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;property name="test.dir" value="${basedir}/test" /&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;property name="classes.dir" value="${basedir}/WEB-INF/classes" /&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;property name="report.dir" value="${basedir}/report" /&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;property name="tomcat.dir" value="C:/ApacheGroup/Tomcat5.5" /&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;property name="lib.dir" value="${basedir}/WEB-INF/lib" /&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;path id="build.classpath"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset file="${lib.dir}/*.jar" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset file="${tomcat.dir}/common/lib/*-api.jar" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;pathelement path="${classes.dir}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/path&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;target name="clean"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${classes.dir}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mkdir dir="${classes.dir}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;target name="compile" depends="copy-resources"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;javac destdir="${classes.dir}" srcdir="${src.dir}:${test.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath refid="build.classpath" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/javac&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;target name="copy-resources"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;copy todir="${classes.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${src.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;exclude name="**/*.java" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;exclude name="**/*.hbm.xml" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/copy&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;target name="copy-hbm-xml"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;copy todir="${classes.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${src.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/*.hbm.xml" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/copy&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;target name="generate" description="Generates Hibernate class descriptor files." depends="compile"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- Define the hibernatedoclet task --&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;taskdef
name="hibernatedoclet"
classname="xdoclet.modules.hibernate.HibernateDocletTask"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${lib.dir}/xdoclet"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="*.jar" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/classpath&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/taskdef&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;!-- Execute the hibernatedoclet task --&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;hibernatedoclet
destdir="${src.dir}" excludedtags="@version,@author,@todo"
verbose="false"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${src.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/*.java" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;hibernate version="3.0" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/hibernatedoclet&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;target name="initdb" depends="compile"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="build.classpath" /&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;hibernatetool destdir="${classes.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;path location="${classes.dir}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/classpath&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&lt;annotationconfiguration
configurationfile="src/hibernate.cfg.xml" /&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;hbm2ddl create="true" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/hibernatetool&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
<br>
&nbsp;&nbsp; &nbsp;&lt;target name="run" depends="compile"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;java fork="true"
classname="cn.ac.rcpa.msms.tools.ProjectManager"
classpathref="build.classpath"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath path="${classes.dir}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;arg value="${action}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;arg value="${project}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;arg value="${description}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/java&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
&nbsp;&nbsp; &nbsp;<br>
&nbsp;&nbsp; &nbsp;&lt;target name="test" depends="compile" description="run junit test"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;delete dir="${report.dir}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;mkdir dir="${report.dir}" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;junit dir="." fork="true"
printsummary="on" haltonfailure="false" failureproperty="tests.failed"
showoutput="true"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;classpath refid="build.classpath" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;formatter type="brief" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;batchtest todir="${report.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fileset dir="${classes.dir}"&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/*Test.*" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &nbsp;&lt;include name="**/Test*.*" /&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fileset&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/batchtest&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/junit&gt;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fail if="tests.failed"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ***********************************************************<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **** One or more tests failed! Check the output ... ****<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ***********************************************************<br>
&nbsp;&nbsp;&nbsp; &lt;/fail&gt;<br>
&nbsp;&nbsp; &nbsp;&lt;/target&gt;<br>
&nbsp;&nbsp; &nbsp;<br>
&lt;/project&gt;<br>
<br>
<img src ="http://www.blogjava.net/DreamTiger/aggbug/22735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-06 16:25 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/06/22735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring in Action - Chapter 1</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22543.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Mon, 05 Dec 2005 04:49:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22543.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/22543.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/22543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/22543.html</trackback:ping><description><![CDATA[ 1、HelloApp<br>
书上是：<br>
BeanFactory factory = new XmlBeanFactory(new FileInputStream("hello.xml"));<br>
应该是：<br>
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("hello.xml"));<br>
<br>
2、KnightApp<br>
在实现了XML中Minstrel的interceptor后，<br>
需要把<br>
    KnightOfTheRoundTable knight = (KnightOfTheRoundTable) factory.getBean("knight");<br>
改成：<br>
    Knight knight = (Knight) factory.getBean("knight");<br>
否则会报：<br>
Exception in thread "main" java.lang.ClassCastException: $Proxy0<img src ="http://www.blogjava.net/DreamTiger/aggbug/22543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-05 12:49 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/05/22543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate+proxool</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22542.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Mon, 05 Dec 2005 04:46:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22542.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/22542.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/22542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/22542.html</trackback:ping><description><![CDATA[由于数据库connection在较长时间没有访问下会自动断开连接，导致浏览出错，增加proxool作为数据库pool。它有自动连接功能。<br>
1、从http://proxool.sourceforge.net/下载proxool，释放proxool.jar到WEB-INF/lib<br>
<br>
2、在hibernate.cfg.xml中增加：<br>
&lt;property name="hibernate.proxool.pool_alias"&gt;dbpool&lt;/property&gt;<br>
&lt;property name="hibernate.proxool.xml"&gt;proxool.xml&lt;/property&gt;<br>
&lt;property name="connection.provider_class"&gt;org.hibernate.connection.ProxoolConnectionProvider&lt;/property&gt;<br>
<br>
3、在与hibernate.cfg.xml同级目录（src根目录下）增加proxool.xml文件：<br>
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br>
&lt;!-- the proxool configuration can be embedded within your own application's.<br>
&nbsp;&nbsp;&nbsp; Anything outside the "proxool" tag is ignored. --&gt;<br>
&lt;something-else-entirely&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;proxool&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;alias&gt;dbpool&lt;/alias&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!--proxool只能管理由自己产生的连接--&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;driver-url&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; jdbc:mysql://localhost:3306/msms<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/driver-url&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;driver-class&gt;com.mysql.jdbc.Driver&lt;/driver-class&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;driver-properties&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;property name="user" value="sqh" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;property name="password" value="sqh" /&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/driver-properties&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁--&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;house-keeping-sleep-time&gt;90000&lt;/house-keeping-sleep-time&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 最少保持的空闲连接数--&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;prototype-count&gt;5&lt;/prototype-count&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 允许最大连接数,超过了这个连接，再有请求时，就排在队列中等候，最大的等待请求数由maximum-new-connections决定--&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;maximum-connection-count&gt;100&lt;/maximum-connection-count&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 最小连接数--&gt;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;minimum-connection-count&gt;10&lt;/minimum-connection-count&gt;<br>
&nbsp;&nbsp;&nbsp; &lt;/proxool&gt;<br>
&lt;/something-else-entirely&gt;<br>
<br>
4、重起tomcat<img src ="http://www.blogjava.net/DreamTiger/aggbug/22542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-05 12:46 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/05/22542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[MS/MS-2]Hibernate导致内存溢出</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22534.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Mon, 05 Dec 2005 04:24:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22534.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/22534.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22534.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/22534.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/22534.html</trackback:ping><description><![CDATA[有一个查询是要一次性把一个项目中所有涉及的sequest
out文件都找出来，显示在界面。数千个算是少的，但显示第一次后，如果刷新，就会出现OutOfMemory。根据深入浅出Hibernate里面提
到，因为Hibernate把所有查询到的记录都放在session中，导致内存不够。于是在ProjectAction的execute中，在<br>
&nbsp;&nbsp;&nbsp; Session session = HibernateUtil.currentSession();<br>
后面加上：&nbsp;&nbsp; &nbsp;<br>
&nbsp;&nbsp;&nbsp; session.flush();<br>
&nbsp;&nbsp;&nbsp; session.clear();<br>
这后面再查询，就没有问题了。一个简单的解决办法吧，对效率的影响有多少就不知道了。<img src ="http://www.blogjava.net/DreamTiger/aggbug/22534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-05 12:24 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/05/22534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[MS/MS-1]jsp-api.jar和servlet-api.jar是Tomcat特异的</title><link>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22533.html</link><dc:creator>梦幻乐园</dc:creator><author>梦幻乐园</author><pubDate>Mon, 05 Dec 2005 04:23:00 GMT</pubDate><guid>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22533.html</guid><wfw:comment>http://www.blogjava.net/DreamTiger/comments/22533.html</wfw:comment><comments>http://www.blogjava.net/DreamTiger/archive/2005/12/05/22533.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamTiger/comments/commentRss/22533.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamTiger/services/trackbacks/22533.html</trackback:ping><description><![CDATA[最近使用Struts和Hibernate开发了一个磷酸化肽段的质谱数据显示系统(msms)，有一些开发时的经验和感想，留在这里作为查询和纪念。这是第一条经验：jsp-api.jar和servlet-api.jar是Tomcat特异的。<br>
<br>
昨
天新安装Tomcat 5.5，把msms从原来的Tomcat 5.0的webapps拷到5.5下面，运行出错。是intenal
error。检查了所有需要的包都在，数据库连接也正常，hibernate没问题，难道是Struts出错了？网上找了好多资料，最后看到一篇文章说，
可能是在WEB-INF/lib下面多了与Tomcat不兼容的jsp-api.jar和servlet-api.jar。想到为了使Eclipse编译
所需要的jar都在一起，把Tomcat5.0的两个jar放到了WEB-INF/lib下，估计就是这个问题了。删除后，重起Tomcat，OK。<br>
<img src ="http://www.blogjava.net/DreamTiger/aggbug/22533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamTiger/" target="_blank">梦幻乐园</a> 2005-12-05 12:23 <a href="http://www.blogjava.net/DreamTiger/archive/2005/12/05/22533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>