﻿<?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-cerulean-随笔分类-Java</title><link>http://www.blogjava.net/cerulean/category/19905.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 19 Jan 2012 17:59:23 GMT</lastBuildDate><pubDate>Thu, 19 Jan 2012 17:59:23 GMT</pubDate><ttl>60</ttl><item><title>这个方法没用过。。。</title><link>http://www.blogjava.net/cerulean/archive/2012/01/18/368714.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Wed, 18 Jan 2012 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2012/01/18/368714.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/368714.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2012/01/18/368714.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/368714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/368714.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->parseInt(String&nbsp;s,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;radix)&nbsp;</div><span style="font-family: 'Times New Roman'; font-size: medium; ">Parses the string argument as a signed integer in the radix specified by the second argument.<br /><br />今儿头回用，真是&#8230;&#8230;反省ing<br /><br /></span><img src ="http://www.blogjava.net/cerulean/aggbug/368714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2012-01-18 17:28 <a href="http://www.blogjava.net/cerulean/archive/2012/01/18/368714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DateFormat setLenient</title><link>http://www.blogjava.net/cerulean/archive/2011/07/18/354546.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Mon, 18 Jul 2011 09:23:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2011/07/18/354546.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/354546.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2011/07/18/354546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/354546.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/354546.html</trackback:ping><description><![CDATA[之前都没注意过有这么个方法，否则判断日期格式就太不靠谱了。<br />又是晦涩的单词：setLenient(false)，严格匹配日期格式<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">&nbsp; &nbsp; &nbsp; &nbsp; SimpleDateFormat&nbsp;df&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;SimpleDateFormat(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">MMddyyyy</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;With&nbsp;lenient&nbsp;parsing,&nbsp;the&nbsp;parser&nbsp;may&nbsp;use&nbsp;heuristics&nbsp;to&nbsp;interpret&nbsp;inputs&nbsp;that&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;do&nbsp;not&nbsp;precisely&nbsp;match&nbsp;this&nbsp;object's&nbsp;format.&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;With&nbsp;strict&nbsp;parsing,&nbsp;inputs&nbsp;must&nbsp;match&nbsp;this&nbsp;object's&nbsp;format.&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df.setLenient(</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;a&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;df.parse(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">23232011</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">date:&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;a);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">catch</span><span style="color: #000000; ">&nbsp;(java.text.ParseException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br /><img src ="http://www.blogjava.net/cerulean/aggbug/354546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2011-07-18 17:23 <a href="http://www.blogjava.net/cerulean/archive/2011/07/18/354546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NetBeans啊！</title><link>http://www.blogjava.net/cerulean/archive/2010/08/11/328550.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Wed, 11 Aug 2010 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2010/08/11/328550.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/328550.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2010/08/11/328550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/328550.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/328550.html</trackback:ping><description><![CDATA[这回是更加深深地体会到IDE的重要性了！<br />
想当初要不是eclipse，估计上手过程会很痛苦；<br />
后来myeclipse的官方网站竟然封掉了；<br />
现在，眼巴巴瞅着NetBeans美丽的GUI Builder，假如当年Swing那部分是用NetBeans开发的，或者NetBeans可以不要那个.form的文件直接解析代码，就好了啊！！！<br />
唉&#8230;&#8230;
<img src ="http://www.blogjava.net/cerulean/aggbug/328550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2010-08-11 16:32 <a href="http://www.blogjava.net/cerulean/archive/2010/08/11/328550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ConcurrentModificationException</title><link>http://www.blogjava.net/cerulean/archive/2010/06/11/323345.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Fri, 11 Jun 2010 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2010/06/11/323345.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/323345.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2010/06/11/323345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/323345.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/323345.html</trackback:ping><description><![CDATA[遍历集合，批量删除时，遇到ConcurrentModificationException<br />
因为操作的集合会在过程中遇到结构性的改变，例如：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">HashMap</span><span style="color: #000000">&lt;</span><span style="color: #000000">String,&nbsp;String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;testMap&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HashMap</span><span style="color: #000000">&lt;</span><span style="color: #000000">String,&nbsp;String</span><span style="color: #000000">&gt;</span><span style="color: #000000">();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testMap.put(</span><span style="color: #000000">"</span><span style="color: #000000">1</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">a</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testMap.put(</span><span style="color: #000000">"</span><span style="color: #000000">2</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">b</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testMap.put(</span><span style="color: #000000">"</span><span style="color: #000000">3</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">c</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set</span><span style="color: #000000">&lt;</span><span style="color: #000000">Map.Entry</span><span style="color: #000000">&lt;</span><span style="color: #000000">String,String</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">&nbsp;enterySet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;testMap.entrySet();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_289_428_Open_Image" onclick="this.style.display='none'; Codehighlighter1_289_428_Open_Text.style.display='none'; Codehighlighter1_289_428_Closed_Image.style.display='inline'; Codehighlighter1_289_428_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_289_428_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_289_428_Closed_Text.style.display='none'; Codehighlighter1_289_428_Open_Image.style.display='inline'; Codehighlighter1_289_428_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(Iterator</span><span style="color: #000000">&lt;</span><span style="color: #000000">Map.Entry</span><span style="color: #000000">&lt;</span><span style="color: #000000">String,&nbsp;String</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;enterySet.iterator();&nbsp;i.hasNext();)</span><span id="Codehighlighter1_289_428_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_289_428_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map.Entry</span><span style="color: #000000">&lt;</span><span style="color: #000000">String,&nbsp;String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;entry&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i.next();<br />
<img id="Codehighlighter1_383_424_Open_Image" onclick="this.style.display='none'; Codehighlighter1_383_424_Open_Text.style.display='none'; Codehighlighter1_383_424_Closed_Image.style.display='inline'; Codehighlighter1_383_424_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_383_424_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_383_424_Closed_Text.style.display='none'; Codehighlighter1_383_424_Open_Image.style.display='inline'; Codehighlighter1_383_424_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(entry.getValue().equalsIgnoreCase(</span><span style="color: #000000">"</span><span style="color: #000000">a</span><span style="color: #000000">"</span><span style="color: #000000">))</span><span id="Codehighlighter1_383_424_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_383_424_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testMap.remove(entry.getKey());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
解决方法：不要在集合上删除，而是在迭代器上删除：i.remove(); <br />
<br />
p.s.还有另外一个可能性是多线程同时操作该集合了，那需要进行同步来避免。
<img src ="http://www.blogjava.net/cerulean/aggbug/323345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2010-06-11 13:57 <a href="http://www.blogjava.net/cerulean/archive/2010/06/11/323345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JTextArea-&gt;JTextPane 解决文字对齐方式的问题</title><link>http://www.blogjava.net/cerulean/archive/2010/03/10/314976.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Wed, 10 Mar 2010 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2010/03/10/314976.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/314976.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2010/03/10/314976.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/314976.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/314976.html</trackback:ping><description><![CDATA[引子只是个小问题，JTextArea多行文本，想设置文字的对齐方式为居中对齐，却发现死活没有合适有效的方法，又试了JTextField和JLabel，都不理想。搜了一溜够看到JTextPane的解决方法，其实真是有点儿大材小用了。JTextPane里可以设置style，对齐方式、字体字号、颜色等等，并且还可以设置style的作用范围，挺方便的。另外，想把文字区域背景设为透明的也是在API中找了一通，才发现敢情就是setOpacity，呃，对这个单词实在是太不敏感了。。。。<img alt="" src="/CuteSoft_Client/CuteEditor/images/emembarrassed.gif" align="absMiddle" border="0" /> <br />
<br />
把在coderanch上搜的例子贴在这里吧，以防以后忘了：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.awt.</span><span style="color: #000000">*</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.</span><span style="color: #000000">*</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.swing.text.</span><span style="color: #000000">*</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Styling&nbsp;&nbsp;<br />
<img id="Codehighlighter1_101_1753_Open_Image" onclick="this.style.display='none'; Codehighlighter1_101_1753_Open_Text.style.display='none'; Codehighlighter1_101_1753_Closed_Image.style.display='inline'; Codehighlighter1_101_1753_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_101_1753_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_101_1753_Closed_Text.style.display='none'; Codehighlighter1_101_1753_Open_Image.style.display='inline'; Codehighlighter1_101_1753_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_101_1753_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_101_1753_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Styling()&nbsp;&nbsp;<br />
<img id="Codehighlighter1_132_1659_Open_Image" onclick="this.style.display='none'; Codehighlighter1_132_1659_Open_Text.style.display='none'; Codehighlighter1_132_1659_Closed_Image.style.display='inline'; Codehighlighter1_132_1659_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_132_1659_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_132_1659_Closed_Text.style.display='none'; Codehighlighter1_132_1659_Open_Image.style.display='inline'; Codehighlighter1_132_1659_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_132_1659_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_132_1659_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;text&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">To&nbsp;refer&nbsp;to&nbsp;locations&nbsp;within&nbsp;the&nbsp;sequence,&nbsp;the&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">coordinates&nbsp;used&nbsp;are&nbsp;the&nbsp;location&nbsp;between&nbsp;two&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">characters.\nAs&nbsp;the&nbsp;diagram&nbsp;below&nbsp;shows,&nbsp;a&nbsp;location&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">in&nbsp;a&nbsp;text&nbsp;document&nbsp;can&nbsp;be&nbsp;referred&nbsp;to&nbsp;as&nbsp;a&nbsp;position,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">or&nbsp;an&nbsp;offset.&nbsp;This&nbsp;position&nbsp;is&nbsp;zero-based.</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleAttributeSet&nbsp;aSet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleAttributeSet();&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setForeground(aSet,&nbsp;Color.blue);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setBackground(aSet,&nbsp;Color.orange);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setFontFamily(aSet,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">lucida&nbsp;bright&nbsp;italic</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setFontSize(aSet,&nbsp;</span><span style="color: #000000">18</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleAttributeSet&nbsp;bSet&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleAttributeSet();&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setAlignment(bSet,&nbsp;StyleConstants.ALIGN_CENTER);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setUnderline(bSet,&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setFontFamily(bSet,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">lucida&nbsp;typewriter&nbsp;bold</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyleConstants.setFontSize(bSet,&nbsp;</span><span style="color: #000000">24</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JTextPane&nbsp;textPane&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JTextPane();&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textPane.setText(text);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StyledDocument&nbsp;doc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;textPane.getStyledDocument();&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.setCharacterAttributes(</span><span style="color: #000000">105</span><span style="color: #000000">,&nbsp;doc.getLength()</span><span style="color: #000000">-</span><span style="color: #000000">105</span><span style="color: #000000">,&nbsp;aSet,&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doc.setParagraphAttributes(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">104</span><span style="color: #000000">,&nbsp;bSet,&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JFrame&nbsp;f&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JFrame();&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.add(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;JScrollPane(textPane));&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.setSize(</span><span style="color: #000000">400</span><span style="color: #000000">,</span><span style="color: #000000">400</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.setLocation(</span><span style="color: #000000">200</span><span style="color: #000000">,</span><span style="color: #000000">200</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.setVisible(</span><span style="color: #0000ff">true</span><span style="color: #000000">);&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1716_1749_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1716_1749_Open_Text.style.display='none'; Codehighlighter1_1716_1749_Closed_Image.style.display='inline'; Codehighlighter1_1716_1749_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1716_1749_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1716_1749_Closed_Text.style.display='none'; Codehighlighter1_1716_1749_Open_Image.style.display='inline'; Codehighlighter1_1716_1749_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1716_1749_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1716_1749_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Styling();&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;</span></div>
<img src ="http://www.blogjava.net/cerulean/aggbug/314976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2010-03-10 17:20 <a href="http://www.blogjava.net/cerulean/archive/2010/03/10/314976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Axis2的data binding</title><link>http://www.blogjava.net/cerulean/archive/2009/12/30/307776.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Wed, 30 Dec 2009 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/12/30/307776.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/307776.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/12/30/307776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/307776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/307776.html</trackback:ping><description><![CDATA[之前用axis2生成代码的时候都没有在意过，一路用default configuration下来。<br />
前一阵子发现以前的代码在生成时选择的data binding不是用默认的adb方式，而是用xmlbeans。<br />
google了一番不同数据绑定的区别，好像也没什么结果，大意就是adb的最简单，但是有局限性；xmlbeans支持的比较全面，但是用起来有点儿复杂。不过，我也没有体会出来xmlbeans强大在哪里&#8230;&#8230;只是知道生成的代码更多了，调用起来更绕弯子而已。。。<br />
<br />
server端用xmlbeans生成，client端用adb生成，互通是没有问题的。<br />
client端用xmlbeans生成时，需要把产生于resources里面的所有.class文件打成jar包加到client端的build path里，否则运行client加载类的时候就会报错了，好诡异，太不友好了。<br />
类似这种错误：<br />
<p><em><strong>ClassNotFoundException : Cannot load SchemaTypeSystem. Unable to load class with name schemaorg_apache_xmlbeans.system.s68C41DB812F52C975439BA10FE4FEE54.TypeSystemHolder. Make sure the generated binary files are on the classpath.</strong></em></p>
<br />
所幸是在官方网站上有说明：http://ws.apache.org/axis2/tools/1_2/CodegenToolReference.html
<img src ="http://www.blogjava.net/cerulean/aggbug/307776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-12-30 15:59 <a href="http://www.blogjava.net/cerulean/archive/2009/12/30/307776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关联多个JNLP文件</title><link>http://www.blogjava.net/cerulean/archive/2009/11/20/303050.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Fri, 20 Nov 2009 07:13:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/11/20/303050.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/303050.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/11/20/303050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/303050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/303050.html</trackback:ping><description><![CDATA[一个JNLP文件中的资源必须由同一个证书签名<br />
当需要不同证书时，可以创建多个JNLP文件，并在主JNLP文件中引用之。<br />
<br />
遇到过的问题：找不到子JNLP文件中的资源<br />
解决方法：竟然把子JNLP文件放到比主JNLP文件所在目录低一级就可以了？！
 <img src ="http://www.blogjava.net/cerulean/aggbug/303050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-11-20 15:13 <a href="http://www.blogjava.net/cerulean/archive/2009/11/20/303050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JLabel的文字自动换行</title><link>http://www.blogjava.net/cerulean/archive/2009/10/29/300153.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Thu, 29 Oct 2009 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/10/29/300153.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/300153.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/10/29/300153.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/300153.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/300153.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">JLabel.setText(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;html&gt;auto new line&lt;/html&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">JLabel.setText(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;html&gt;line&lt;br&gt;force new line&lt;/html&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);</span></span></div>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/cerulean/aggbug/300153.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-10-29 11:43 <a href="http://www.blogjava.net/cerulean/archive/2009/10/29/300153.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Firefox又支持modal window啦？</title><link>http://www.blogjava.net/cerulean/archive/2009/09/22/296040.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Tue, 22 Sep 2009 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/09/22/296040.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/296040.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/09/22/296040.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/296040.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/296040.html</trackback:ping><description><![CDATA[费了半天劲，敢情Firefox在3.0版本后又支持弹出modal window啦<br />
window.showModalDialog<br />
<br />
<br />
<img src ="http://www.blogjava.net/cerulean/aggbug/296040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-09-22 15:59 <a href="http://www.blogjava.net/cerulean/archive/2009/09/22/296040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种timeout的设置</title><link>http://www.blogjava.net/cerulean/archive/2009/09/10/294601.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Thu, 10 Sep 2009 08:09:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/09/10/294601.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/294601.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/09/10/294601.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/294601.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/294601.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">HttpClient.getHttpConnectionManager().getParams().setSoTimeout()<br />
HttpClient.getHttpConnectionManager().getParams().setConnectionTimeout()</span></div>
<span><br />
第一个针对连接建立后，但是没有收到response的超时时间，测试时可将server simulator收到request后等一段时间后再回response。<br />
出错信息：<br />
java.net.SocketTimeoutException: Read timed out<br />
<br />
第二个针对连接建立的超时时间，测试时可将目的IP地址设为不存在的IP地址。<br />
出错信息：<br />
org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 8000 ms<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:154)<br />
默认值为0，如果不设置的话大概2分多钟才会得到异常<br />
<br />
</span><br />
<img src ="http://www.blogjava.net/cerulean/aggbug/294601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-09-10 16:09 <a href="http://www.blogjava.net/cerulean/archive/2009/09/10/294601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>证书问题Illegal key size or default parameters</title><link>http://www.blogjava.net/cerulean/archive/2009/09/08/294336.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Tue, 08 Sep 2009 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/09/08/294336.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/294336.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/09/08/294336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/294336.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/294336.html</trackback:ping><description><![CDATA[导入了某证书至truststore，建立SSL连接时遇到错误<br />
javax.net.ssl.SSLKeyException: RSA premaster secret error<br />
Caused by: java.security.InvalidKeyException: Illegal key size or default parameters<br />
<br />
在windows上双击查看该证书时发现Public Key是4096bit，查了一番后发现Java默认好像不能处理这么长的key，必须要按照JCE的一个Unlimited Strength Jurisdiction Policy<br />
http://java.sun.com/javase/downloads/index_jdk5.jsp里面就有下载，这样貌似就可以处理这种强度比较高的了。<br />
<br />
<br />
<img src ="http://www.blogjava.net/cerulean/aggbug/294336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-09-08 17:24 <a href="http://www.blogjava.net/cerulean/archive/2009/09/08/294336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Arrays.toString()</title><link>http://www.blogjava.net/cerulean/archive/2009/08/17/291503.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Mon, 17 Aug 2009 07:17:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/08/17/291503.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/291503.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/08/17/291503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/291503.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/291503.html</trackback:ping><description><![CDATA[打印数组的方法，小地方，却老忘记，来自FindBugs的提示：<br />
The code invokes toString on an array, which will generate a fairly useless
result such as [C@16f0472. Consider using Arrays.toString to convert the array
into a readable String that gives the contents of the array.<br />
<br />
Arrays提供一系列接收不同类型数组作为参数的toString方法<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">String[]&nbsp;array&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;String[]{</span><span style="color: #000000;">"</span><span style="color: #000000;">a</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">b</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">c</span><span style="color: #000000;">"</span><span style="color: #000000;">};<br />
System.out.println(Arrays.toString(array));</span></div>
<br />
<img src ="http://www.blogjava.net/cerulean/aggbug/291503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-08-17 15:17 <a href="http://www.blogjava.net/cerulean/archive/2009/08/17/291503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FindBugs</title><link>http://www.blogjava.net/cerulean/archive/2009/08/14/291176.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Fri, 14 Aug 2009 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/08/14/291176.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/291176.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/08/14/291176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/291176.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/291176.html</trackback:ping><description><![CDATA[FindBugs,<a href="http://findbugs.sourceforge.net">http://findbugs.sourceforge.net/</a><br />
发现代码中潜在bug的工具，有eclipse的插件，安装后右键单击java project name，点击Find Bugs，切换到FindBugs得perspective可以看到结果，速度还比较快，比之前用过的一个（虽然已经记不得名字了）快一些~具体的效果还是要逐个分析。<br />
<br />
<h2>Bug categories：</h2>
<dl><dt><strong>Correctness bug</strong>
</dt><dd>Probable bug - an apparent coding mistake
resulting in code that was probably not what the
developer intended. We strive for a low false positive rate.
</dd><dt><strong>Bad Practice
</strong></dt><dd>
Violations of recommended and essential
coding practice. Examples include hash code and equals
problems, cloneable idiom, dropped exceptions,
serializable problems, and misuse of finalize.
We strive to make this analysis accurate,
although some groups may
not care about some of the bad practices.
</dd><dt><strong>Dodgy
</strong></dt><dd>
Code that is confusing, anomalous, or
written in a way that leads itself to errors.
Examples include dead local stores, switch fall through,
unconfirmed casts, and redundant null check of value
known to be null.
More false positives accepted.
In previous versions of FindBugs, this category was known as Style.
</dd></dl><strong>Multithreaded correctness</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp; Incorrect lazy initialization and update of static field <br />
&nbsp;&nbsp;&nbsp;&nbsp; Calls Thread.sleep() with a lock held: better to use wait(lock)<br />
&nbsp;&nbsp;&nbsp;&nbsp; Synchronization on interned String could deadlock: 最好不用字符串，以免重复<br />
<strong>Performance</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp; invokes inefficient new String() constructor<br />
&nbsp;&nbsp;&nbsp;&nbsp; concatenates strings using + in a loop: better to use append StringBuffer<br />
&nbsp;&nbsp;&nbsp;&nbsp; inner class usage<br />
<br />
<br />
<img src ="http://www.blogjava.net/cerulean/aggbug/291176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-08-14 16:04 <a href="http://www.blogjava.net/cerulean/archive/2009/08/14/291176.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于证书</title><link>http://www.blogjava.net/cerulean/archive/2009/07/16/287001.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Thu, 16 Jul 2009 09:27:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/07/16/287001.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/287001.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/07/16/287001.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/287001.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/287001.html</trackback:ping><description><![CDATA[<strong><u>Server<span style="font-family: 宋体;">：</span></u></strong>
<p><span style="font-family: 宋体;"><strong>创建本地证书：</strong></span></p>
<p>keytool -genkey -alias testserver-keyalg RSA -keystore keystore</p>
<p><span style="font-family: 宋体;">其中</span>alias<span style="font-family: 宋体;">自己起一个别名，</span>keystore<span style="font-family: 宋体;">为证书库的文件路径</span></p>
<p><span style="font-family: 宋体;">还可以加上-keysize 1024、2048、4096等来指定公钥的大小，由此导出的证书查看时可以看到公钥的大小是与之一致的。keysize越大genkey时耗费时间越长。</span></p>
<p><span style="font-family: 宋体;"><br />
</span></p>
<p><span style="font-family: 宋体;">会要求键入一个密码，为这个证书库的访问密码</span></p>
<p><span style="font-family: 宋体;">会要求填写一些信息，姓名、单位、地区之类</span></p>
<p><span style="font-family: 宋体;">最后要求键入一个密码，为这条证书别名的密码</span></p>
<p><strong><span style="font-family: 宋体;">导出</span>cert<span style="font-family: 宋体;">：</span></strong></p>
<p>keytool -export -alias testserver-file testcert.cer -keystore keystore</p>
<p><span style="font-family: 宋体;">这里的别名和文件名同上一步</span></p>
<p><br />
<strong><u>Client<span style="font-family: 宋体;">：</span></u></strong></p>
<p><strong><span style="font-family: 宋体;">直接导入</span>cert<span style="font-family: 宋体;">：</span></strong></p>
<p>Truststore<span style="font-family: 宋体;">文件中存储的是作为</span>client<span style="font-family: 宋体;">，信任那些</span>server<span style="font-family: 宋体;">的证书。所以需要将</span>server<span style="font-family: 宋体;">提供的证书导入进来（当然可以导入</span>n<span style="font-family: 宋体;">个），</span>client<span style="font-family: 宋体;">才能信任。</span></p>
<p>keytool -import -alias testserver-file testcert.cer -keystore truststore</p>
<p><span style="font-family: 宋体;">导入时需要输入密码，该密码应该是</span>truststore<span style="font-family: 宋体;">文件的访问密码，密码正确才能修改其信息。</span></p>
<p><span style="font-family: 宋体;">提示是否信任该证书信息，确认。</span></p>
<p><span style="font-family: 宋体;"><strong>查看证书信息：</strong></span></p>
<p>keytool &#8211;list &#8211;v &#8211;keystore truststore</p>
<p><span style="font-family: 宋体;">如果导入过多个，则可以看到多条</span>entry</p>
<p><strong><span style="font-family: 宋体;">删除某一个证书</span>entry<span style="font-family: 宋体;">，通过指定别名来删：</span></strong></p>
<p>keytool -delete -alias testserver-keystore truststore</p>
<p><span style="font-family: 宋体;"><br />
上述是自签名的证书，证书链的长度只为</span>1</p>
<p><span style="font-family: 宋体;">真正商用时，需要找相关机构（例如</span>verisign<span style="font-family: 宋体;">）认证通过才能成为有效的证书：</span></p>
<p><span style="font-family: 宋体;"><strong>生成证书签名请求：</strong></span></p>
<p style="margin-right: 0.9pt; text-align: left;" align="left"><span style="font-size: 10pt; color: black; font-family: 'MS Shell Dlg';">keytool -certreq -keyalg RSA -alias testserver -file certreq.csr -keystore keystore</span></p>
<p><span style="font-family: 宋体;">之后能够收到一个证书文件，证书链信息包含了该机构的一些信息，然后再导入。<br />
</span></p>
<p><span style="font-family: 宋体;"><br />
<strong>有两种方法建立</strong></span><strong>HTTPS<span style="font-family: 宋体;">连接，</span></strong></p>
<p><span style="font-family: 宋体;">一种是，在</span>java<span style="font-family: 宋体;">中可以设置相关的</span>4<span style="font-family: 宋体;">个系统参数，指向相关的</span>keystore,truststore<span style="font-family: 宋体;">，一旦设置，在运行时就不可改变了。除非一定要使用多个不同的证书库文件，否则可以把多个不同证书都导入到同一个证书库里，这样，设置系统参数为唯一的值也够用，而且也比较简单一些。</span></p>
<p><span style="font-family: 宋体;">另一种是，自己继承相关接口实现自己的证书管理器，这样可以自定义相关行为，也可以</span>load<span style="font-family: 宋体;">不同的证书库。<br />
<br />
<span style="font-family: 宋体;"><br />
如果不设置</span>password<span style="font-family: 宋体;">，就认为不检查文件完整性，也能通过。如果设置了password，但是不正确，则会遇到密码错误的异常；如果server证书没有导入到client得信任列表里，则会遇到找不到可信证书的异常。</span></span></p>
<img src ="http://www.blogjava.net/cerulean/aggbug/287001.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-07-16 17:27 <a href="http://www.blogjava.net/cerulean/archive/2009/07/16/287001.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tools:Java Decompiler</title><link>http://www.blogjava.net/cerulean/archive/2009/06/24/283922.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Wed, 24 Jun 2009 05:45:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2009/06/24/283922.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/283922.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2009/06/24/283922.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/283922.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/283922.html</trackback:ping><description><![CDATA[一个反编译的好工具，600KB，简单好使又免费，比之前用过的好~<br />
http://java.decompiler.free.fr/?q=jdgui<br />
<img src ="http://www.blogjava.net/cerulean/aggbug/283922.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2009-06-24 13:45 <a href="http://www.blogjava.net/cerulean/archive/2009/06/24/283922.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>调节java占用的内存大小</title><link>http://www.blogjava.net/cerulean/archive/2007/12/17/168334.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Mon, 17 Dec 2007 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/12/17/168334.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/168334.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/12/17/168334.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/168334.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/168334.html</trackback:ping><description><![CDATA[java默认的JVM内存占用：初始1MB，最大64MB<br />
可以通过java -Xms256m -Xmx256m ClassName来调整。<br />
xms和xmx的值最好相同，否则调整的效率可能不高。<br />
如果程序运行中，发生内存溢出，那么不会以Exception的形式抛出，而是"Error"<br />
如果没有catch(Error error)，那么控制台将显示错误：Exception in thread "main" java.lang.OutOfMemoryError: Java heap space，而且后面的程序也不会执行。
<img src ="http://www.blogjava.net/cerulean/aggbug/168334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-12-17 21:26 <a href="http://www.blogjava.net/cerulean/archive/2007/12/17/168334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>将RMI接口实现打jar包</title><link>http://www.blogjava.net/cerulean/archive/2007/12/17/168327.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Mon, 17 Dec 2007 13:12:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/12/17/168327.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/168327.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/12/17/168327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/168327.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/168327.html</trackback:ping><description><![CDATA[虽然RMI已经不大推荐使用了，但是方法还是要记住的。<br />
在产生.class文件的根目录，例如/bin<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">cd&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">bin<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />rmic&nbsp;com.test.RMIImpl</span></div>
<br />
将在/bin/com/test目录下产生RMIImpl_Stub.class文件<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">cd&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">bin<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />jar&nbsp;cvf&nbsp;test.jar&nbsp;com</span><span style="color: #000000">/</span><span style="color: #000000">test</span><span style="color: #000000">/</span><span style="color: #000000">RMIIntf.</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;com</span><span style="color: #000000">/</span><span style="color: #000000">test</span><span style="color: #000000">/</span><span style="color: #000000">RMIImpl_Stub.</span><span style="color: #0000ff">class</span></div>
<br />
将在/bin目录下产生test.jar文件，供RMI客户端调用
<img src ="http://www.blogjava.net/cerulean/aggbug/168327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-12-17 21:12 <a href="http://www.blogjava.net/cerulean/archive/2007/12/17/168327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts Form Reset方法</title><link>http://www.blogjava.net/cerulean/archive/2007/08/23/138834.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Thu, 23 Aug 2007 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/08/23/138834.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/138834.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/08/23/138834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/138834.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/138834.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">其实还是挺糊涂的，org.apache.struts.action.ActionForm的Reset()方法，不过知道可以在该方法中set该Form的一些属性值，就能够在页面上显示为该对应控件的默认值，比较方便。<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_69_138_Open_Image onclick="this.style.display='none'; Codehighlighter1_69_138_Open_Text.style.display='none'; Codehighlighter1_69_138_Closed_Image.style.display='inline'; Codehighlighter1_69_138_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_69_138_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_69_138_Closed_Text.style.display='none'; Codehighlighter1_69_138_Open_Image.style.display='inline'; Codehighlighter1_69_138_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;reset(ActionMapping&nbsp;mapping,&nbsp;HttpServletRequest&nbsp;request)&nbsp;</span><span id=Codehighlighter1_69_138_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_69_138_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">set&nbsp;default&nbsp;value&nbsp;for&nbsp;the&nbsp;first&nbsp;display</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.setType(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
</span>
<img src ="http://www.blogjava.net/cerulean/aggbug/138834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-08-23 14:55 <a href="http://www.blogjava.net/cerulean/archive/2007/08/23/138834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp传递参数</title><link>http://www.blogjava.net/cerulean/archive/2007/08/13/136435.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Mon, 13 Aug 2007 08:51:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/08/13/136435.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/136435.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/08/13/136435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/136435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/136435.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">**.jsp?param=1<br>那么request.getParameter("param")就可以勒！<br>原来用request.getAttribute死活不行，以为必须得用form传递呢，敢情getParameter就行~~ <br><br>所以如果想只用jsp页面的话，可以这样子做：<br>hello.jsp:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;hello(name)<br><img id=Codehighlighter1_21_40_Open_Image style="DISPLAY: inline" onclick="this.style.display='none'; Codehighlighter1_21_40_Open_Text.style.display='none'; Codehighlighter1_21_40_Closed_Image.style.display='inline'; Codehighlighter1_21_40_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_21_40_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_40_Closed_Text.style.display='none'; Codehighlighter1_21_40_Open_Image.style.display='inline'; Codehighlighter1_21_40_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_21_40_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_21_40_Open_Text style="DISPLAY: inline"><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;sayHello(name);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000">&nbsp;sayHello(id)<br><img id=Codehighlighter1_64_112_Open_Image onclick="this.style.display='none'; Codehighlighter1_64_112_Open_Text.style.display='none'; Codehighlighter1_64_112_Closed_Image.style.display='inline'; Codehighlighter1_64_112_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_64_112_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_64_112_Closed_Text.style.display='none'; Codehighlighter1_64_112_Open_Image.style.display='inline'; Codehighlighter1_64_112_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_64_112_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_64_112_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;window.location</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">sayHelloCommit.jsp?id=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">id;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
</span><br>sayHelloCommit.jsp:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_2_46_Open_Image onclick="this.style.display='none'; Codehighlighter1_2_46_Open_Text.style.display='none'; Codehighlighter1_2_46_Closed_Image.style.display='inline'; Codehighlighter1_2_46_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_2_46_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2_46_Closed_Text.style.display='none'; Codehighlighter1_2_46_Open_Image.style.display='inline'; Codehighlighter1_2_46_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_2_46_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_2_46_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">@&nbsp;page&nbsp;contentType</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">text/html;charset=gb2312</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_52_190_Open_Image onclick="this.style.display='none'; Codehighlighter1_52_190_Open_Text.style.display='none'; Codehighlighter1_52_190_Closed_Image.style.display='inline'; Codehighlighter1_52_190_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_52_190_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_190_Closed_Text.style.display='none'; Codehighlighter1_52_190_Open_Image.style.display='inline'; Codehighlighter1_52_190_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">&lt;%</span><span id=Codehighlighter1_52_190_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_52_190_Open_Text><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">String</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;str&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">=</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;(</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">String</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">)&nbsp;request.getParameter(</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">id</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">To</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;Something&nbsp;using&nbsp;the&nbsp;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">str</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">//</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">redirect&nbsp;</span><span style="COLOR: #0000ff; BACKGROUND-COLOR: #f5f5f5">to</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&nbsp;a&nbsp;page<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>response.sendRedirect(</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">hello.jsp</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">"</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></span><span style="COLOR: #000000; BACKGROUND-COLOR: #ffff00">%&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.blogjava.net/cerulean/aggbug/136435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-08-13 16:51 <a href="http://www.blogjava.net/cerulean/archive/2007/08/13/136435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>换行符</title><link>http://www.blogjava.net/cerulean/archive/2007/07/26/132462.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Thu, 26 Jul 2007 02:27:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/07/26/132462.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/132462.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/07/26/132462.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/132462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/132462.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt">Linux和windows下，文件中的换行符好像是不同的，当在windows下用UE打开一来自linux的文件时，好像会问你是不是要转换到DOS格式什么的。在eclipse中打开代码时，有时也会遇到类似的问题，尤其是.xml文件。<br>今天在看weka的网站时，无意看到在eclipse中有一个设置貌似是专门用来做这个的：<br>eclipse-&gt;Window -&gt; Preferences -&gt; General -&gt; Editors 里面有一个"New text file line delimiter"，可以在other中选择Unix。</p>
<img src ="http://www.blogjava.net/cerulean/aggbug/132462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-07-26 10:27 <a href="http://www.blogjava.net/cerulean/archive/2007/07/26/132462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>静态惹得祸</title><link>http://www.blogjava.net/cerulean/archive/2007/07/25/132399.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Wed, 25 Jul 2007 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/07/25/132399.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/132399.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/07/25/132399.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/132399.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/132399.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">小心仔细的使用静态变量，因为有的时候它表现的过于&#8220;静态&#8221;，而不符合习惯性的想法，容易引入不易发现的bug。<br>因为经常是在单次运行程序时还不会反映出来，只有在多次运行时才能显露效果。<br></span>
<img src ="http://www.blogjava.net/cerulean/aggbug/132399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-07-25 22:20 <a href="http://www.blogjava.net/cerulean/archive/2007/07/25/132399.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>同时启动多个Tomcat</title><link>http://www.blogjava.net/cerulean/archive/2007/07/25/132397.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Wed, 25 Jul 2007 14:15:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/07/25/132397.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/132397.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/07/25/132397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/132397.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/132397.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">以前天真的认为只要把两个tomcat的端口号修改成不同的就哦了呢，结果不行。<br>实际情况是（转自CSDN）：<br>1.特别要注意：不要设置CATALINA_HOME <br>2.分别修改安装目录下的conf子目录中的<strong>server.xml</strong>文件： <br>a.修改http访问端口（默认为8080端口），将<strong>8080</strong>修改为tomcat不在使用的端口号。此处所设的端口号即是以后访问web时所用的端口号。 <br>b.修改Shutdown端口（默认为<strong>8005</strong>端口），将8005修改为没有在使用的端口号，例如8055。 <br>c.修改<strong>8009</strong>端口，将8009修改为没有在使用的端口号，例如8099 <br>（注意：两个文件中对应的端口号要不一样） <br>3.依次启动两个tomcat。</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">另外，因为打开了axis2的SOAPMonitor，今天不知道怎么回事儿monitor页面无法正常显示了，tomcat启动时也报出了address in use:5001的错误。一开始以为是两个tomcat的问题，后来才意识到是SOAPMonitor的端口冲突了（也不知道是和谁冲突了。。。）反正改吧：<br>webapps/axis2/WEB-INF/web.xml<br>&lt;init-param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;SOAPMonitorPort&lt;/param-name&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;5011&lt;/param-value&gt;<br>&lt;/init-param&gt;<br>把原来的5001改成比如5011就哦了。</p>
<img src ="http://www.blogjava.net/cerulean/aggbug/132397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-07-25 22:15 <a href="http://www.blogjava.net/cerulean/archive/2007/07/25/132397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>myeclipse中web.xml文件不识别taglib的问题</title><link>http://www.blogjava.net/cerulean/archive/2007/04/15/110744.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Sun, 15 Apr 2007 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/04/15/110744.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/110744.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/04/15/110744.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/110744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/110744.html</trackback:ping><description><![CDATA[用myeclipse创建web工程时，向web.xml文件中添加一些taglib的时候，总会报错，不过不影响使用。<br>在网上查了一下，好像是web.xml文件头格式的问题，最简单的解决方法是多加一个&lt;jsp-config&gt;标签，以struts标签为例：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jsp-config</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib-uri</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/WEB-INF/struts-html</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib-uri</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib-location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/WEB-INF/struts-html.tld</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib-location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib-uri</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/WEB-INF/struts-bean</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib-uri</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib-location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/WEB-INF/struts-bean.tld</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib-location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib-uri</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/WEB-INF/struts-logic</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib-uri</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">taglib-location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/WEB-INF/struts-logic.tld</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib-location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">taglib</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jsp-config</span><span style="COLOR: #0000ff">&gt;</span></div>
<img src ="http://www.blogjava.net/cerulean/aggbug/110744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-04-15 10:13 <a href="http://www.blogjava.net/cerulean/archive/2007/04/15/110744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>错误页面内容不能过少</title><link>http://www.blogjava.net/cerulean/archive/2007/04/15/110742.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Sun, 15 Apr 2007 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/04/15/110742.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/110742.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/04/15/110742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/110742.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/110742.html</trackback:ping><description><![CDATA[在web.xml中，会将HTTP的404错误导向一个错误页面：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">error-page</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">error-code</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">404</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">error-code</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/errors.jsp</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">location</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">error-page</span><span style="COLOR: #0000ff">&gt;</span></div>
<br>但是今天发现随便访问一个不存在页面时，并没有如预期的一样出现自定义的错误页面。在网上查了一下，原来是IE对于内容非常少的自定义错误页面是不会显示出来的，而firefox就没有问题。<br>于是，把错误页面的内容多加了几行字，就可以了。 
<img src ="http://www.blogjava.net/cerulean/aggbug/110742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-04-15 10:04 <a href="http://www.blogjava.net/cerulean/archive/2007/04/15/110742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>哪里要测？用什么测？</title><link>http://www.blogjava.net/cerulean/archive/2007/03/20/105097.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Tue, 20 Mar 2007 13:17:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/03/20/105097.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/105097.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/03/20/105097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/105097.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/105097.html</trackback:ping><description><![CDATA[
		<p>DAO层： JUnit test,需要用dbunit恢复现场; <br />service层：JUnit test,需要用dbunit恢复现场,逻辑更重要些,分支覆盖更重要些; <br />action：不做测试; <br />selenium：做集成测试。<br />    尽管有人认为struts action不需要做测试，不过无意中看到strutsTestCase这个东东,还没有试,用途是测试struts的action.觉得比较有用.<br />    尤其是,如果web页面交由第三方来做的话,那么单独对action进行测试就是十分有必要的.<br />    但是,如果整个web系统从前台到后台都是一个team来做,那么个人认为还不如跟页面一起集成测,毕竟这是真实情况,而且从页面上可视性更强,更容易发现问题.与此同时,使用脚本录制回放测试工具(还没有试过)提高效率.</p>
<img src ="http://www.blogjava.net/cerulean/aggbug/105097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-03-20 21:17 <a href="http://www.blogjava.net/cerulean/archive/2007/03/20/105097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>试验JMock</title><link>http://www.blogjava.net/cerulean/archive/2007/03/20/105094.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Tue, 20 Mar 2007 13:05:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/03/20/105094.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/105094.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/03/20/105094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/105094.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/105094.html</trackback:ping><description><![CDATA[
		<p>“jMock利用mock objects思想来对Java code进行测试。jMock具有以下特点:容易扩展，让你快速简单地定义mock objects,因此不必打破程序间的关联，你定义灵活的超越对象之间交互作用而带来测试局限，减少你测试地脆弱性。”<br /><br />    跟JMock功能类似的还有EasyMock。<br />    简单试验后的感觉没有试验DBUnit后的感觉强烈,试了DBUnit的感觉是这东西以后一定要用.<br />    但个人认为mock object这种东西能不用就不用,模拟来模拟去,最后还是要和真东西联调,所以mock的阶段应该是尽可能的短才是.<br /><br /><strong>使用模仿对象进行测试的常用编码样式是：</strong><br />· 创建模仿对象的实例 <br />· 设置模仿对象中的状态和期望值 <br />· 将模仿对象作为参数来调用域代码 <br />· 验证模仿对象中的一致性</p>
		<p>
				<strong>代码中的大概过程：<br /></strong>     Mock mock = new Mock(**.class);//构造一个那个类的mock对象，把这个类传入Mock<br />     使用mock.expects方法，来设置想要执行的操作：执行几次、执行哪个方法、传什么参、返回什么值<br />     获得那个mock对象：** x = (**)mock.proxy();//proxy方法返回代理类实例，即虚拟对象实例<br />     然后run **.class的那个方法（call methods on the mock object, expectation on it will deliver the result set up by yourself）<br /><br />     写mock-object 测试，需要有独立的接口作为mock的对象(从而促进了针对接口编程的习惯)，还有个好的副作用：他迫使你来重写一些代码。实际上，代码常常写的不好。你让类和环境之间产生了不必要的耦合。</p>
<img src ="http://www.blogjava.net/cerulean/aggbug/105094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-03-20 21:05 <a href="http://www.blogjava.net/cerulean/archive/2007/03/20/105094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DBUnit的使用</title><link>http://www.blogjava.net/cerulean/archive/2007/03/20/105093.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Tue, 20 Mar 2007 12:59:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/03/20/105093.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/105093.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/03/20/105093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/105093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/105093.html</trackback:ping><description><![CDATA[
		<p>DBUnit扩展自JUnit.在使用DBUnit之前,为了验证自己编写的涉及数据库操作方法的正确性,每次都要执行一个简单的sql脚本,灌些数据,然后人眼观察着数据表中的数据.然后,代码执行完毕后,再次观察数据变化情况.久而久之,表里面的数据就变得杂乱,一般会全部删除,重新来过.<br />    DBUnit的目标正是保证数据库数据环境的稳定性,具备将数据库中数据与xml文件之间双向转换的能力.<br />试验了一下,<br /><br />首先,下载dbunit的jar包,加入工程即可.<br /><strong>1.从xml中将数据导入数据库表</strong><br />tc不再继承自TestCase,而是继承DatabaseTestCase<br />覆盖几个方法,包括获得xml文件内容,获得DB连接,以及在setup方法和teardown方法中调用提供的dbunit操作类型,构建数据库内数据环境.</p>
		<p>这时,我以为如果只有几个简单的数据,写xml固然简单,但想测试大数据量时(虽然UT主要是测试功能而非性能,但是大数据量也方便验证)就有点问题,好在是双向的,可以先把数据用function灌入数据库,再导进xml里面:<br /><br /><strong>2.从数据库表数据导入xml文件</strong><br />    用ant+DBUnit来完成这个任务非常方便!</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">target </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="export"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">taskdef </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="dbunit"</span>
				<span style="COLOR: #ff0000"> classname</span>
				<span style="COLOR: #0000ff">="org.dbunit.ant.DbUnitTask"</span>
				<span style="COLOR: #ff0000"> classpathref</span>
				<span style="COLOR: #0000ff">="compile.path"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">dbunit </span>
				<span style="COLOR: #ff0000">driver</span>
				<span style="COLOR: #0000ff">="com.mysql.jdbc.Driver"</span>
				<span style="COLOR: #ff0000"> url</span>
				<span style="COLOR: #0000ff">="jdbc:mysql://127.0.0.1:3306/mydb"</span>
				<span style="COLOR: #ff0000"> userid</span>
				<span style="COLOR: #0000ff">="root"</span>
				<span style="COLOR: #ff0000"> password</span>
				<span style="COLOR: #0000ff">="root"</span>
				<span style="COLOR: #ff0000"> supportBatchStatement</span>
				<span style="COLOR: #0000ff">="true"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">export </span>
				<span style="COLOR: #ff0000">dest</span>
				<span style="COLOR: #0000ff">="${test.srcpath}/export.xml"</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">                <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">query </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="test_table"</span>
				<span style="COLOR: #ff0000"> sql</span>
				<span style="COLOR: #0000ff">="SELECT * FROM test_table"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                </span>
				<span style="COLOR: #0000ff">&lt;</span>
				<span style="COLOR: #800000">table </span>
				<span style="COLOR: #ff0000">name</span>
				<span style="COLOR: #0000ff">="user_table"</span>
				<span style="COLOR: #ff0000"> </span>
				<span style="COLOR: #0000ff">/&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />            </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">export</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />        </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">dbunit</span>
				<span style="COLOR: #0000ff">&gt;</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="COLOR: #0000ff">&lt;/</span>
				<span style="COLOR: #800000">target</span>
				<span style="COLOR: #0000ff">&gt;</span>
		</div>
		<p>
				<br />    疑问,看到有人说DBUnit在清除数据时,有时不能彻底,原因是分析不出来外键等表之间的约束.因为在试验中采用的数据库里没啥表之间的约束,所以还没有体会到.<br /><br />    DatabaseTestCase类提供了两个方法来控制测试前和测试后的数据库状态：getSetUpOperation() 和 getTearDownOperation().       <br />    一种高效的实施方案就是让getSetUpOperation()方法执行REFRESH操作，通过这个操作,我们可以用种子文件中的数据去更新目标数据库里的数据。<br />    接下来，就是getTearDownOperation()，让他去执行一个NONE操作，也就是什么也不执行<br />    常用操作：<br />    DatabaseOperation.CLEAN_INSERT; 先删除表中所有，再插入准备的数据<br />    DatabaseOperation.REFRESH; 使用准备数据更新表，存在则update，不存在则insert<br />    DatabaseOperation.DELETE;  只删除准备的数据<br />    DatabaseOperation.NONE;  啥都不做</p>
<img src ="http://www.blogjava.net/cerulean/aggbug/105093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-03-20 20:59 <a href="http://www.blogjava.net/cerulean/archive/2007/03/20/105093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Integrate Testlink with Mantis</title><link>http://www.blogjava.net/cerulean/archive/2007/03/11/103156.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Sun, 11 Mar 2007 13:33:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/03/11/103156.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/103156.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/03/11/103156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/103156.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/103156.html</trackback:ping><description><![CDATA[
		<p>
				<strong>前提:</strong>testlink已经跟mantis安装在同一个环境下<br /><strong>步骤:</strong><br />参照<a href="http://crystaliris.bokee.com/5588155.html">http://crystaliris.bokee.com/5588155.html</a>，testlink网站也给出了比较清楚的文档说明。<br />1.修改testlink关于interface的配置为"MANTIS"，如果用别的BTS(Bug Trace System)，有其他的对应值。<br />2.修改testlink目录下cfg/mantis.cfg.php（如果用别的BTS，修改其他对应目录下的配置），配置一些关于mantis的数据库和url属性。<br />3.修改mantis的配置文件,打开匿名登录,由于匿名登录的用户名需要是一个已经存在的真实用户,而我又没在mantis上创建新的用户,所以就填写成administrator了。</p>
<img src ="http://www.blogjava.net/cerulean/aggbug/103156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-03-11 21:33 <a href="http://www.blogjava.net/cerulean/archive/2007/03/11/103156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RMI</title><link>http://www.blogjava.net/cerulean/archive/2007/03/11/103154.html</link><dc:creator>cerulean</dc:creator><author>cerulean</author><pubDate>Sun, 11 Mar 2007 13:29:00 GMT</pubDate><guid>http://www.blogjava.net/cerulean/archive/2007/03/11/103154.html</guid><wfw:comment>http://www.blogjava.net/cerulean/comments/103154.html</wfw:comment><comments>http://www.blogjava.net/cerulean/archive/2007/03/11/103154.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cerulean/comments/commentRss/103154.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cerulean/services/trackbacks/103154.html</trackback:ping><description><![CDATA[测试RMI接口实现修改后,jar包用不用重新打<br />可以的,接口实现修改了,只要接口定义不变,RMIClient调用后,都会按照Server端最新的实现来得到结果.<br /><br />在class文件的根目录下（例如bin目录）执行rmic命令，写完整接口实现的包名。<img src ="http://www.blogjava.net/cerulean/aggbug/103154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cerulean/" target="_blank">cerulean</a> 2007-03-11 21:29 <a href="http://www.blogjava.net/cerulean/archive/2007/03/11/103154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>