﻿<?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-内蒙古java团队</title><link>http://www.blogjava.net/gdws/</link><description>j2se,j2ee开发组</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 11:20:57 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 11:20:57 GMT</pubDate><ttl>60</ttl><item><title>Java线程池管理及分布式Hadoop调度框架搭建【转】</title><link>http://www.blogjava.net/gdws/archive/2014/05/06/413326.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 06 May 2014 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2014/05/06/413326.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/413326.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2014/05/06/413326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/413326.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/413326.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Java线程池管理及分布式Hadoop调度框架搭建&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2014/05/06/413326.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/413326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2014-05-06 16:14 <a href="http://www.blogjava.net/gdws/archive/2014/05/06/413326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MapGuide Maestro 5.1发布了</title><link>http://www.blogjava.net/gdws/archive/2014/02/17/409919.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Mon, 17 Feb 2014 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2014/02/17/409919.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/409919.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2014/02/17/409919.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/409919.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/409919.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MapGuide Maestro 5.1发布了&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2014/02/17/409919.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/409919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2014-02-17 11:40 <a href="http://www.blogjava.net/gdws/archive/2014/02/17/409919.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> JDK1.5 JDK1.6 JDK1.7 帮助文档全系列下载</title><link>http://www.blogjava.net/gdws/archive/2013/10/09/404775.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 09 Oct 2013 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/10/09/404775.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/404775.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/10/09/404775.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/404775.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/404775.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:  JDK1.5 JDK1.6 JDK1.7 帮助文档全系列下载&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/10/09/404775.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/404775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-10-09 09:31 <a href="http://www.blogjava.net/gdws/archive/2013/10/09/404775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>技术讨论群开通了！群号：171844570</title><link>http://www.blogjava.net/gdws/archive/2013/09/29/404618.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sun, 29 Sep 2013 07:53:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/09/29/404618.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/404618.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/09/29/404618.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/404618.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/404618.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 技术讨论群开通了！&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/09/29/404618.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/404618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-09-29 15:53 <a href="http://www.blogjava.net/gdws/archive/2013/09/29/404618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL中多表删除方法【转】</title><link>http://www.blogjava.net/gdws/archive/2013/09/24/404356.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 24 Sep 2013 01:32:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/09/24/404356.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/404356.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/09/24/404356.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/404356.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/404356.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MySQL中多表删除方法&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/09/24/404356.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/404356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-09-24 09:32 <a href="http://www.blogjava.net/gdws/archive/2013/09/24/404356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java程序运行超时后退出或进行其他操作的实现[转]</title><link>http://www.blogjava.net/gdws/archive/2013/09/24/404355.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 24 Sep 2013 01:25:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/09/24/404355.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/404355.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/09/24/404355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/404355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/404355.html</trackback:ping><description><![CDATA[<p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">对于开发软件 Eclipse ，在程序执行超时后，可以点击 Terminate 按钮强制退出。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　那么，我们可不可以通过程序设置一定的时间，当程序运行超过该时长后自行终止或者进行其他操作呢?</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　查了大量资料后发现，Future类就能满足这个需求。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　Future类中重要方法包括get()和cancel()。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　get()获取数据对象，如果数据没有加载，就会阻塞直到取到数据，而 cancel()是取消数据加载。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　另外一个get(timeout)操作，表示如果在timeout时间内没有取到就失败返回，而不再阻塞。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　通过这些方法即可实现我们要求。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　<a href="http://java.chinaitlab.com/" target="_blank" style="margin: 0px; padding: 0px; word-wrap: break-word; text-decoration: none; color: #0000ff; line-height: 22px;">Java</a>&nbsp;代码示例：</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　final ExecutorService exec = Executors.newFixedThreadPool(1);</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　Callable<string style="margin: 0px; padding: 0px; word-wrap: break-word;">&nbsp;call = new Callable<string style="margin: 0px; padding: 0px; word-wrap: break-word;">() {</string></string></p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　public String call() throws Exception {</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　// 放入耗时操作代码块</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　int cash = 300;</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　String name = "张三";</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　System.out.println(name + "现在有" + cash + "元存款");</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　User u = new User(name, cash);</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　String[] arr = { "线程A", "线程B", "线程C", "线程D", "线程E", "线程F",</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　"线程G", "线程H", "线程I", "线程J" };</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　for (int i = 0; i &lt; 10; i++) {</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　MyThread th = new MyThread(arr[i], u,</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　(int) (Math.random() * 1000 - 500));</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　th.start();</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　}</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　//耗时代码块结束</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　Thread.sleep(1000 * 5);</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　return "线程执行完成";</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　}</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　};</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　try {</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　Future<string style="margin: 0px; padding: 0px; word-wrap: break-word;">&nbsp;future = exec.submit(call);</string></p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　String obj = future.get(1000 * 1, TimeUnit.MILLISECONDS); // 任务处理超时时间设为1 秒</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　System.out.println("任务成功返回:" + obj);</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　} catch (TimeoutException ex) {</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　System.out.println("处理超时啦....");</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　System.exit(0);</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　} catch (Exception e) {</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　System.out.println("处理失败.");</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　e.printStackTrace();</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　}</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　exec.shutdown(); // 关闭线程池</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　将耗时的代码块放入标注的地方后，即可满足要求。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　System.out.println("处理失败.");</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　e.printStackTrace();</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　System.out.println("处理失败.");</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　e.printStackTrace();</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　在该示例程序中，当运行超时后，执行的是退出程序的操作。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　也可以根据需要放入其他代码进行相关操作。</p><p style="margin: 10px 0px 0px; padding: 0px; word-wrap: break-word; font-family: 宋体; line-height: 25px; background-color: #ffffff;">　　例如可以设置当处理超时时就忽略 该错误继续向下执行</p><img src ="http://www.blogjava.net/gdws/aggbug/404355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-09-24 09:25 <a href="http://www.blogjava.net/gdws/archive/2013/09/24/404355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>中秋节由来</title><link>http://www.blogjava.net/gdws/archive/2013/09/10/403886.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 10 Sep 2013 04:07:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/09/10/403886.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/403886.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/09/10/403886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/403886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/403886.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 中秋节由来&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/09/10/403886.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/403886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-09-10 12:07 <a href="http://www.blogjava.net/gdws/archive/2013/09/10/403886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EditPlus配置Java语法自动补全功能[转]</title><link>http://www.blogjava.net/gdws/archive/2013/07/07/401281.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sun, 07 Jul 2013 00:28:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/07/07/401281.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/401281.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/07/07/401281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/401281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/401281.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: EditPlus配置Java语法自动补全功能&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/07/07/401281.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/401281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-07-07 08:28 <a href="http://www.blogjava.net/gdws/archive/2013/07/07/401281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>本月起Oracle将不再提供Java 6的安全更新</title><link>http://www.blogjava.net/gdws/archive/2013/02/21/395544.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Thu, 21 Feb 2013 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/02/21/395544.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/395544.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/02/21/395544.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/395544.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/395544.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本月起Oracle将不再提供Java 6的安全更新&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/02/21/395544.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/395544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-02-21 17:49 <a href="http://www.blogjava.net/gdws/archive/2013/02/21/395544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>五种JSP页面跳转方法详解 [转]</title><link>http://www.blogjava.net/gdws/archive/2012/11/13/391273.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 13 Nov 2012 14:43:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2012/11/13/391273.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/391273.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2012/11/13/391273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/391273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/391273.html</trackback:ping><description><![CDATA[<p><strong><u>1. RequestDispatcher.forward()</u></strong></p>
<p>是在<a class="channel_keylink" href="http://server.chinaitlab.com/" target="_blank">服务器</a>端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面。</p>
<p>重定向后浏览器地址栏URL不变。</p>
<p>例：在servlet中进行重定向</p><pre>public void doPost(HttpServletRequest request,HttpServletResponse response) <br />throws ServletException,IOException{　 response.setContentType("text/html; charset=gb2312");　 ServletContext sc = getServletContext();　 RequestDispatcher rd = null;　 rd = sc.getRequestDispatcher("/index.jsp"); //定向的页面　 rd.forward(request, response);}</pre>
<p>通常在servlet中使用，不在jsp中使用。</p>
<p><u><strong>2. response.sendRedirect()</strong></u></p>
<p>是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件.</p>
<p>重定向后在浏览器地址栏上会出现重定向页面的URL</p>
<p>例：在servlet中重定向</p>
<p><pre>public void doPost(HttpServletRequest request,HttpServletResponse response)</pre><pre>throws ServletException,IOException</pre><pre>{</pre><pre>　 response.setContentType("text/html; charset=gb2312");</pre><pre>　 response.sendRedirect("/index.jsp");</pre><pre>}</pre>
<p>&nbsp;</p>
<p>由于response是jsp页面中的隐含对象，故在jsp页面中可以用response.sendRedirect()直接实现重定位。</p>
<p><strong>注意：</strong></p>
<p>(1) 使用response.sendRedirect时，前面不能有HTML输出；</p>
<p>这并不是绝对的，不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制，一般在8K（我是说 JSP　SERVER），这就意味着，除非你关闭了cache，或者你使用了out.flush()强制刷新，那么在使用sendRedirect之前，有少量的HTML输出也是允许的。</p>
<p>(2) response.sendRedirect之后，应该紧跟一句return。</p>
<p>我们已经知道response.sendRedirect是通过浏览器来做转向的，所以只有在页面处理完成后，才会有实际的动作。既然你已经要做转向了，那么后的输出还有什么意义呢？而且有可能会因为后面的输出导致转向失败。</p>
<p><strong>比较：</strong></p>
<p>(1) Dispatcher.forward()是容器中控制权的转向，在客户端浏览器地址栏中不会显示出转向后的地址；</p>
<p>(2) response.sendRedirect()则是完全的跳转，浏览器将会得到跳转的地址，并重新发送请求链接。这样，从浏览器的地址栏中可以看到跳转后的链接地址。</p>
<p>前者更加高效，在前者可以满足需要时，尽量使用RequestDispatcher.forward()方法。</p>
<p><em>注：在有些情况下，比如，需要跳转到一个其它<a class="channel_keylink" href="http://server.chinaitlab.com/" target="_blank">服务器</a>上的资源，则必须使用HttpServletResponse.sendRequest()方法。</em></p><img src ="http://www.blogjava.net/gdws/aggbug/391273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2012-11-13 22:43 <a href="http://www.blogjava.net/gdws/archive/2012/11/13/391273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JVM调优的几种策略[转]</title><link>http://www.blogjava.net/gdws/archive/2012/08/29/386541.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 29 Aug 2012 13:07:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2012/08/29/386541.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/386541.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2012/08/29/386541.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/386541.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/386541.html</trackback:ping><description><![CDATA[JVM参数调优是一个很头痛的问题，可能和应用有关系，别人说可以的对自己不一定管用。下面是本人一些JVM调优的实践经验，希望对读者能有帮助，环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存，dell2950<a class="channel_keylink" href="http://server.chinaitlab.com/" target="_blank">服务器</a>。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; JVM调优<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 一：JVM调优之串行垃圾回收<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 也就是默认配置，完成10万request用时153秒。JVM参数配置如下：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $JAVA_ARGS.=&#8220;-Dresin.home=$SERVER_ROOT-server<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xms2048M-Xmx2048M-Xmn512M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:PermSize=256M-XX:MaxPermSize=256M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xnoclassgc-Xloggc:log/gc.log<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCDetails-XX:+PrintGCTimeStamps&#8221;;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 这种配置一般在resin启动24小时内似乎没有大问题，网站可以正常访问，但查看日志发现，在接近24小时时，FullGC执行越来越频繁，大约每隔3分钟就有一次FullGC,每次FullGC系统会停顿6秒左右，作为一个网站来说，用户等待6秒恐怕太长了，所以这种方式有待改善。MaxTenuringThreshold=7表示一个对象如果在救助空间移动7次还没有被回收就放入年老代，GCTimeRatio=19表示java可以用5%的时间来做垃圾回收，1/（1+19）=1/20=5%.<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 二：JVM调优之并行回收<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 完成10万request用时117秒，配置如下：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $JAVA_ARGS.=&#8220;-Dresin.home=$SERVER_ROOT-server-Xmx2048M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xms2048M-Xmn512M-XX:PermSize=256M-XX:MaxPermSize=256M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCTimeStamps-XX:+UseParallelGC-XX:ParallelGCThreads=20<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+UseParallelOldGC-XX:MaxGCPauseMillis=500<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+UseAdaptiveSizePolicy-XX:MaxTenuringThreshold=7<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:GCTimeRatio=19&#8221;;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 并行回收我尝试过多种组合配置，似乎都没什么用，resin启动3小时左右就会停顿，时间超过10秒。也有可能是参数设置不够好的原因，MaxGCPauseMillis表示GC最大停顿时间，在resin刚启动还没有执行FullGC时系统是正常的，但一旦执行FullGC,MaxGCPauseMillis根本没有用，停顿时间可能超过20秒，之后会发生什么我也不再关心了，赶紧重启resin,尝试其他回收策略。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 三：JVM调优之并发回收<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 完成10万request用时60秒，比并行回收差不多快一倍，是默认回收策略性能的2.5倍，配置如下：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $JAVA_ARGS.=&#8220;-Dresin.home=$SERVER_ROOT-server<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:MaxPermSize=256M-XX:+UseConcMarkSweepGC<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:MaxTenuringThreshold=7-XX:GCTimeRatio=19<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xnoclassgc-Xloggc:log/gc.log-XX:+PrintGCDetails<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCTimeStamps-XX:+UseCMSCompactAtFullCollection<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:CMSFullGCsBeforeCompaction=0&#8221;;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 这个配置虽然不会出现10秒连不上的情况，但系统重启3个小时左右，每隔几分钟就会有5秒连不上的情况，查看gc.log,发现在执行ParNewGC时有个promotionfailed错误，从而转向执行FullGC,造成系统停顿，而且会很频繁，每隔几分钟就有一次，所以还得改善。UseCMSCompactAtFullCollection是表是执行FullGC后对内存进行整理压缩，免得产生内存碎片，CMSFullGCsBeforeCompaction=N表示执行N次FullGC后执行内存压缩。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 四：JVM调优之增量回收<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 完成10万request用时171秒，太慢了，配置如下：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $JAVA_ARGS.=&#8220;-Dresin.home=$SERVER_ROOT-server<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCDetails-XX:+PrintGCTimeStamps-Xincgc&#8221;;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 似乎回收得也不太干净，而且也对性能有较大影响，不值得试。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 五：JVM调优之并发回收的I-CMS模式<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 和增量回收差不多，完成10万request用时170秒。配置如下：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $JAVA_ARGS.=&#8220;-Dresin.home=$SERVER_ROOT-server<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCDetails-XX:+PrintGCTimeStamps<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+UseConcMarkSweepGC-XX:+CMSIncrementalMode<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+CMSIncrementalPacing<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:CMSIncrementalDutyCycleMin=0<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:CMSIncrementalDutyCycle=10-XX:-TraceClassUnloading&#8221;;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 采用了sun推荐的参数，回收效果不好，照样有停顿，数小时之内就会频繁出现停顿，什么sun推荐的参数，照样不好使。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 六：JVM调优之递增式低暂停收集器<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 又叫什么火车式回收，完成10万request用时153秒，配置如下：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $JAVA_ARGS.=&#8220;-Dresin.home=$SERVER_ROOT-server<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xms2048M-Xmx2048M-Xmn512M-XX:PermSize=256M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:MaxPermSize=256M-XX:MaxTenuringThreshold=7<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:GCTimeRatio=19-Xnoclassgc-Xloggc:log/gc.log<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+UseTrainGC&#8221;;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 该配置效果也不好，影响性能，所以没试。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 七：相比之下，还是并发回收比较好，性能比较高，只要能解决ParNewGC（并行回收年轻代）时的promotionfailed错误就一切好办了，查了很多文章，发现引起promotionfailed错误的原因是CMS来不及回收（CMS默认在年老代占到90%左右才会执行），年老代又没有足够的空间供GC把一些活的对象从年轻代移到年老代，所以执行FullGC.CMSInitiatingOccupancyFraction=70表示年老代占到约70%时就开始执行CMS,这样就不会出现FullGC了。SoftRefLRUPolicyMSPerMB这个参数也是我认为比较有用的，官方解释是softlyreachableobjectswillremainaliveforsomeamountoftimeafterthelasttimetheywerereferenced.Thedefaultvalueisonesecondoflifetimeperfreemegabyteintheheap,我觉得没必要等1秒，所以设置成0.配置如下<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; $JAVA_ARGS.=&#8220;-Dresin.home=$SERVER_ROOT-server-Xms2048M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xmx2048M-Xmn512M-XX:PermSize=256M-XX:MaxPermSize=256M<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:SurvivorRatio=8-XX:MaxTenuringThreshold=7<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:GCTimeRatio=19-Xnoclassgc-XX:+DisableExplicitGC<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+UseParNewGC-XX:+UseConcMarkSweepGC<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+CMSPermGenSweepingEnabled<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+UseCMSCompactAtFullCollection<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:CMSFullGCsBeforeCompaction=0<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+CMSClassUnloadingEnabled-XX:-CMSParallelRemarkEnabled<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:CMSInitiatingOccupancyFraction=70<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:SoftRefLRUPolicyMSPerMB=0-XX:+PrintClassHistogram<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCDetails-XX:+PrintGCTimeStamps<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCApplicationConcurrentTime<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -XX:+PrintGCApplicationStoppedTime<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -Xloggc:log/gc.log&#8221;;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 上面这个配置内存上升的很慢，24小时之内几乎没有停顿现象，最长的只停滞了0.8s,ParNewGC每30秒左右才执行一次，每次回收约0.2秒，看来问题应该暂时解决了。<img src ="http://www.blogjava.net/gdws/aggbug/386541.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2012-08-29 21:07 <a href="http://www.blogjava.net/gdws/archive/2012/08/29/386541.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux远程拷贝和本地拷贝命令</title><link>http://www.blogjava.net/gdws/archive/2012/06/28/381736.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Thu, 28 Jun 2012 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2012/06/28/381736.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/381736.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2012/06/28/381736.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/381736.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/381736.html</trackback:ping><description><![CDATA[<strong>一、</strong><a class="channel_keylink" href="http://linux.chinaitlab.com/" target="_blank"><strong>linux</strong></a><strong>对linux 远程拷贝&nbsp;&nbsp; scp命令<br /></strong>&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; scp 文件名&nbsp; root@远程ip:/路径/<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 将本地home目录下的test.tar的文件拷贝到远程主机192.168.1.23的/home/adm/目录下，则命令为：scp /home/test.tar <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#111;&#111;&#116;&#64;&#49;&#57;&#50;&#46;&#49;&#54;&#56;&#46;&#49;&#46;&#50;&#51;&#58;&#47;&#104;&#111;&#109;&#101;&#47;&#97;&#100;&#109;&#47;">root@192.168.1.23:/home/adm/</a>&nbsp; 回车后输入密码就可以了<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; scp提供了几个选项&nbsp; 在scp后加就行了<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -p 拷贝文件的时候保留源文件建立的时间。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -q 执行文件拷贝时，不显示任何提示消息。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -r 拷贝整个目录<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; -v 拷贝文件时，显示提示信息。<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;<strong> 二、linux中cp强制覆盖拷贝<br /></strong>&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 1） 取消cp的alias,不是永久生效<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; #unalias cp<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; #cp a /test/a<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 2） 用 \cp 执行cp命令时不走alias<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; #\cp a /test/a<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 3） Blinux最开始有自己的方法<br /><img src ="http://www.blogjava.net/gdws/aggbug/381736.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2012-06-28 21:24 <a href="http://www.blogjava.net/gdws/archive/2012/06/28/381736.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>性能测试结果分析原则【转】</title><link>http://www.blogjava.net/gdws/archive/2012/03/05/371260.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Mon, 05 Mar 2012 05:53:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2012/03/05/371260.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/371260.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2012/03/05/371260.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/371260.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/371260.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 测试结果分析&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2012/03/05/371260.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/371260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2012-03-05 13:53 <a href="http://www.blogjava.net/gdws/archive/2012/03/05/371260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FDO</title><link>http://www.blogjava.net/gdws/archive/2011/12/07/365727.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 07 Dec 2011 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/12/07/365727.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/365727.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/12/07/365727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/365727.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/365727.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em"><strong><strong style="background-color: #ffff66; color: black">FDO</strong> 数据访问技术</strong></p>
<p style="text-indent: 2em">长久以来，由于地理空间信息行业的固有特点，在这一领域中存在着多种不同的文件或数据库格式。当用户使用了某个公司的数据存储格式之后，常常就被迫使用同一个公司的软件，以访问他们自己的数据。如果希望使用其它公司的软件，就往往要耗费大量的精力把数据从一种格式转换成另一种格式，或者设法去读写这些专有格式。在这个过程中，可能导致的问题包括:</p>
<p style="text-indent: 2em">&#9670; 数据丢失:例如一种格式中记录的数据可能无法或很难转移到另一种格式中;</p>
<p style="text-indent: 2em">&#9670; 精度损失:例如把数据从一个双精度的格式中转移到单精度甚至整型的格式中;</p>
<p style="text-indent: 2em">&#9670; 数据冗余:同一份数据要创建多种格式的拷贝;</p>
<p style="text-indent: 2em">&#9670; 过时信息:当一个版本的数据更新后，未能及时更新其它格式的版本，导致项目成员使用过时的数据而导致不必要的错误;</p>
<p style="text-indent: 2em">&#9670;浪费成本:大量的时间和金钱耗费于毫无生产性的工作。</p>
<p style="text-indent: 2em">在<strong style="background-color: #ffff66; color: black">FDO</strong>技术的帮助下，针对每种现有的数据存储格式，只要编写一段程序，将原有的数据存储&#8220;翻译&#8221;到<strong style="background-color: #ffff66; color: black">FDO</strong> API，就可以提供给使用<strong style="background-color: #ffff66; color: black">FDO</strong>的应用程序访问。这个&#8220;翻译&#8221;程序就称为<strong style="background-color: #ffff66; color: black">FDO</strong> Provider。只要安装了<strong style="background-color: #ffff66; color: black">FDO</strong> Provider，应用程序就可以通过调用<strong style="background-color: #ffff66; color: black">FDO</strong>接口来直接访问相应的数据存储，而不再需要进行格式转换。因此，开发人员可以将更多的精力集中于应用程序逻辑，而不是处理各种数据格式。</p>
<p style="text-indent: 2em">Autodesk不仅制订了<strong style="background-color: #ffff66; color: black">FDO</strong> API的标准，还开发了一系列的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider提供给用户。目前已包括:</p>
<p style="text-indent: 2em">&#9670; 文件型数据源:<strong style="background-color: #a0ffff; color: black">SDF</strong>、SHP;</p>
<p style="text-indent: 2em">&#9670; 数据库型数据源:ArcSDE、Oracle*、MS SQL Server*、MySQL、ODBC;</p>
<p style="text-indent: 2em">&#9670; Web数据源:符合OGC规范的WMS/WFS（只读）;</p>
<p style="text-indent: 2em">&#9670; 光栅数据源:多种常见的二维光栅格式和DEM格式*（只读）。</p>
<p style="text-indent: 2em">为了推广<strong style="background-color: #ffff66; color: black">FDO</strong>技术的应用，Autodesk与OSGeo合作，将<strong style="background-color: #ffff66; color: black">FDO</strong>作为一个开放的标准发布（http://<strong style="background-color: #ffff66; color: black">fdo</strong>.osgeo.org/），并将已有的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider作为免费的开源产品贡献给社区（列表中带*号的除外）。</p>
<p style="text-indent: 2em">在OSGeo的推动下，<strong style="background-color: #ffff66; color: black">FDO</strong>正在成为访问地理空间数据格式的统一的标准，并且已经由开源社区的开发人员（而非Autodesk）提供了更丰富的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider，包括OSGeo <strong style="background-color: #ffff66; color: black">FDO</strong> Provider for PostGIS和OSGeo <strong style="background-color: #ffff66; color: black">FDO</strong> Provider for GDAL/OGR。这些Provider程序都基于标准的<strong style="background-color: #ffff66; color: black">FDO</strong>接口，因此应用程序可以轻松的使用它们来扩展其支持的格式。</p>
<p style="text-indent: 2em">另外，由于<strong style="background-color: #ffff66; color: black">FDO</strong> Provider本身并不必须是开源的，因此对于原先私有数据格式的所有者，即使在不公开该格式的情况下，也可以通过发布<strong style="background-color: #ffff66; color: black">FDO</strong> Provider使得其它开发人员和应用软件可以访问该格式中存储的数据。借助<strong style="background-color: #ffff66; color: black">FDO</strong> Provider，应用软件还可以访问遵循OGC（Open Geospatial Consortium）标准的WMS/WFS（网络地图/要素服务）站点，从而获取基于Web的公开的地图数据资源。</p>
<p style="text-indent: 2em">有了<strong style="background-color: #ffff66; color: black">FDO</strong>，企业就不再局限于某一数据格式的软件供应商，而是可以自由的选择功能更强大、价格更低廉的软件来访问其自身的数据资源，从而可以降低成本，提高生产力。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong><strong style="background-color: #a0ffff; color: black">SDF</strong>空间数据格式</strong></p>
<p style="text-indent: 2em">Autodesk不仅推出了<strong style="background-color: #ffff66; color: black">FDO</strong>技术以访问现有的地理空间数据格式，还开发了新的开放的空间数据格式<strong style="background-color: #a0ffff; color: black">SDF</strong>（Spatial Data Format）。<strong style="background-color: #a0ffff; color: black">SDF</strong>格式是基于开源数据库格式sqlite（http://www.sqlite.org/），并且针对大型GIS数据集的存储进行了优化。</p>
<p style="text-indent: 2em"><strong style="background-color: #a0ffff; color: black">SDF</strong>是一种易于使用的文件型空间数据格式，它能够在一个文件中以表格的方式存储多种地理要素，包括多种几何类型（点、线、多边形和圆弧）以及关联的属性信息。与SHP相比，它更为小巧便携，使用双精度存储，支持真正的圆弧对象，并且支持海量数据存储（可存放超过100GB的数据），性能优越。</p>
<p style="text-indent: 2em">而与Oracle等真正的数据库系统相比，它的成本更低廉，更易于复制和传送，因此更适合于个人或小型系统使用。使用<strong style="background-color: #ffff66; color: black">FDO</strong>技术，还能够轻松的将<strong style="background-color: #a0ffff; color: black">SDF</strong>转换成其它格式，因此当企业规模发生变化，需求从小型系统进化到大型数据库系统时，可以很方便的将<strong style="background-color: #a0ffff; color: black">SDF</strong>的数据迁移进入Oracle这样的数据库。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>DWF图形技术</strong></p>
<p style="text-indent: 2em">DWF（Design Web Format）图形格式是一种专为网络应用而设计的矢量图形格式，可将其称为&#8220;网络时代的电子图纸&#8221;。DWF与AutoCAD DWG看起来相似，但也有很大的不同。</p>
<p style="text-indent: 2em">首先，DWF是高度压缩的格式，体积小巧，因此更便于网络传输;其次，DWF是专为图形浏览、审阅和打印而设计的，它忠实的再现了原始图形，但却不可进行更改（只能添加批注），因此能够保证数据的安全可靠性;最后，DWF是一种智能的图形格式，它不仅支持图层控制、电子量测、三维模型和多页图纸集，更重要的是它还包含了对象的属性数据。</p>
<p style="text-indent: 2em">例如，在一个DWF的地图文件中，审核人员不仅可以选中一个地块，用电子方式测量它的面积，还可以查看其中包含的地块属性，例如产权所有者、绿化率和建筑密度。当发现错误时，可以在图上添加电子批注，然后将DWF文件发回给制图人员修改。因此，在基于网络的图形浏览和审批流程中，DWF是最佳的数据格式。</p>
<p style="text-indent: 2em">DWF对于Web应用也有非常重要的意义。我们不仅可以在安装了DWF Viewer插件的Internet Explorer软件中直接浏览DWF文件，更重要的是，由于DWF是一种流媒体格式，这意味着可以在文件下载的过程中逐步显示其中的内容，而不是等到整个文件下载完成之后才显示其全部内容。因此，基于DWF技术的Web应用能提供更好的用户体验。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>MapGuide Open Source</strong></p>
<p style="text-indent: 2em">MapGuide Open Source是Autodesk开源的地理空间信息技术的集大成者。它综合利用了多种开源技术，提供了一个先进的WebGIS平台，用于集成多种数据源，建立一个基于Web的地理空间信息应用系统，将地理空间数据发布到Internet/Intranet进行共享。并且，由于MapGuide Open Source是专门针对WebGIS应用开发的，因此非常容易学习和使用，性能也更为出色。</p>
<p style="text-indent: 2em">MapGuide Open Source是由Autodesk独立开发的全新产品，并于2005年11月发布。尽管其名称与以前的Autodesk MapGuide 6.5相似，但是新的MapGuide是完全重新开发的，使用了与以前截然不同的技术，因此实际上是两个完全不同的产品。新的MapGuide包含两个版本:开源版本MapGuide Open Source和商业版本Autodesk MapGuide Enterprise 2007。</p>
<p style="text-indent: 2em">这两个版本的内核完全相同，绝大多数功能也一样，但商业版本提供了更多的高级功能（例如用于Oracle和SQL Server的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider），并且可以获得Autodesk公司提供的技术支持和服务。</p>
<p style="text-indent: 2em">与以前的Autodesk MapGuide 6.5相比，MapGuide Open Source（也同样适用于商业版本）使用了最新的流行技术，因此更加卓越。其主要的新特性如下:</p>
<p style="text-indent: 2em">&#9670; HTML（AJAX）和DWF两种浏览方式</p>
<p style="text-indent: 2em">MapGuide Open Source可集成服务器端的多种数据源，并通过HTML方式或DWF方式发送到客户端。这两种方式提供了几乎完全相同的界面和功能，包括动态的图形缩放和平移、图层控制、选中要素并查看属性数据、浮动提示、图上测量和缓冲区分析等。</p>
<p style="text-indent: 2em">在HTML方式中，服务器端的地理空间数据被转换成光栅图像发送到浏览器，使用AJAX（Asynchronous JavaScript and XML）技术进行用户交互，而无需在客户端安装任何插件。而在DWF方式中，发送到客户端的是DWF格式的矢量数据，使用浏览器内嵌的DWF Viewer进行查看，因此能够提供更快的用户响应速度、更好的缩放和打印性能，另外还可以将DWF文件保存到本地以备脱机浏览。</p>
<p style="text-indent: 2em">&#9670;使用<strong style="background-color: #ffff66; color: black">FDO</strong>数据访问技术</p>
<p style="text-indent: 2em">MapGuide Open Source使用<strong style="background-color: #ffff66; color: black">FDO</strong>作为数据访问的接口，因此它能够无缝直接读取多种地理空间数据格式，包括<strong style="background-color: #a0ffff; color: black">SDF</strong>、SHP、ArcSDE等。另外，在Autodesk MapGuide Enterprise这一商业产品中还提供了对Oracle和SQL Server的支持。作为一款经过OGC认证的产品，MapGuide Open Source还支持通过WMS/WFS集成和发布Web地图数据。</p>
<p style="text-indent: 2em">&#9670; 更强大的图形平台</p>
<p style="text-indent: 2em">MapGuide Open Source还具有更强大的图形显示性能，包括支持真彩色、TrueType字体、地图符号库、透明填充和智能的文字标注功能。另外，它还提供了更方便的用户交互界面。很多在以前的MapGuide 6.5中需要通过开发人员编程实现的常用功能，现在都可直接从MapGuide产品中获取。</p>
<p style="text-indent: 2em">&#9670; 空间应用服务器</p>
<p style="text-indent: 2em">由于MapGuide Open Source是在服务器端进行空间数据的访问、查询和分析，因此这就赋予它一种强大的特性，作为一个空间应用服务器，以&#8220;机器到机器&#8221;的方式与其它应用系统进行交互。</p>
<p style="text-indent: 2em">简单来讲，当另一个应用软件（不限于Web浏览器）按照事先约定的方式向MapGuide Open Source服务器发送一个请求时，MapGuide Open Source接受这个请求，执行其操作（例如查询某个指定区域内的地理空间数据），然后将操作的结果以事先约定的格式发送给该应用软件，然后该软件就可以按照其自身的需求对返回的信息进行处理。</p>
<p style="text-indent: 2em">将MapGuide作为空间应用服务器的一个最新例子，是加拿大的Nanaimo市使用它与Google Earth进行集成。该网站（http://earth.nanaimo.ca/）可以将市政府的MapGuide服务器中的空间数据输出为kml格式（Google Earth的文件格式）。于是，当用户在Google Earth客户端中打开一个包含MapGuide服务器地址的kml文件时，Google Earth客户端就向该MapGuide服务器进行查询。</p>
<p style="text-indent: 2em">而MapGuide服务器接收请求后，就查询该地区的空间数据并生成kml格式返回给Google Earth客户端。然后，Google Earth客户端就可以显示来自MapGuide的空间数据并叠加到它自身的卫星影像上。</p>
<p style="text-indent: 2em">因此，MapGuide不仅仅是一个Web地图平台，更是一个基于Web的空间数据引擎。使用MapGuide，可以很容易的为其它应用系统提供空间查询和分析功能，或是将分布于多个系统中的空间数据集成到一个客户端上进行浏览。</p>
<p style="text-indent: 2em">MapGuide Open Source（以及Autodesk MapGuide Enterprise）提供了如此之多的强大功能，因此能够用于架设企业级的地理空间信息应用系统。</p>
<p style="text-indent: 2em">另外，Autodesk还提供了与之配套的开发工具Autodesk MapGuide Studio，用于收集和整理地图数据、创建地图显示样式，以及集成用.net、Java或PHP开发的应用程序逻辑，并在发布之前对整个系统进行预览。Autodesk MapGuide Studio是一个独立的商业软件，但Autodesk也提供了可下载的免费试用版本，并且可向开发商合作伙伴提供用于开发的许可。</p>
<p style="text-indent: 2em">此外，MapGuide Open Source还能够与桌面软件Autodesk Map 3D 2007协同使用，以简化地图创建到发布的流程。Autodesk Map 3D 2007是基于AutoCAD的地图制作与编辑软件（商业产品），它也同样使用<strong style="background-color: #ffff66; color: black">FDO</strong>数据访问技术，因此能够直接访问多种地理空间数据格式，使用AutoCAD工具进行编辑，并创建地图显示样式和制作专题地图。使用Map 3D制作的地图可以直接输出到MapGuide Open Source服务器上进行发布，并且保持在Map 3D中做好的显示样式。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>采用LGPL授权</strong></p>
<p style="text-indent: 2em">与开源软件中流行的GPL授权不同，Autodesk在MapGuide Open Source以及大部分<strong style="background-color: #ffff66; color: black">FDO</strong> Provider中使用的是LGPL授权。与GPL相比，LGPL授权是一种更为宽松的授权。</p>
<p style="text-indent: 2em">如果您在自己开发的软件产品中包含了基于LGPL授权的产品（例如在MapGuide Open Source的基础上开发的应用系统），LGPL并不要求开放您新增的这些代码（与之相反，GPL授权要求开放您新增的所有代码）。您所开发的新软件可以是开放的或者私有的，可以是免费的或者收费的，没有任何限制;但如果修改了其中原产品的部分代码，那么您必须明确的指出修改的部分，并公布修改后的代码。因此，与采用GPL授权的开源软件（例如MapServer）相比，MapGuide Open Source更加适合于商业应用。</p>
<p style="text-indent: 2em">事实上，Autodesk MapGuide Enterprise 2007就是基于MapGuide Open Source的一个商业产品，它包含MapGuide Open Source的所有功能。</p>
<p style="text-indent: 2em">为了让更多用户从MapGuide Open Source受益，Autodesk将此软件捐献给OSGeo基金会。用户可从OSGeo网站下载和使用该产品及其源代码。</p>
<p style="text-indent: 2em">这意味着MapGuide Open Source不再属于Autodesk所有，而是属于以OSGeo为代表的全体开源社区。但同时也需注意，Autodesk不对MapGuide Open Source的用户提供技术支持和任何保障，这些用户需通过开源社区获取支持。Autodesk仅对Autodesk MapGuide Enterprise的用户提供支持和服务。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>结语</strong></p>
<p style="text-indent: 2em">通过本文的介绍，我们简要的浏览了Autodesk在地理空间信息领域的一系列开源技术和产品。使用来自Autodesk的开源技术，能够与其它开源软件或商业软件集成，建立起完善的基于Web的地理空间信息应用系统，从而为最广泛的用户共享地理信息，同时帮助企业降低成本，提高生产力。Autodesk将与OSGeo协作，不断的为地理空间信息的开源事业做出贡献。</p>
<p style="text-indent: 2em"><img src="http://media.ccidnet.com/media/swm/img/253/04501t01.jpg"  alt="" /></p>
<p style="text-indent: 2em">图1 <strong style="background-color: #ffff66; color: black">FDO</strong>数据访问技术</p>
<p style="text-indent: 2em"><img src="http://media.ccidnet.com/media/swm/img/253/04501t02.jpg"  alt="" /></p>
<p style="text-indent: 2em">图2 MapGuide Open Source 站点架构</p><img src ="http://www.blogjava.net/gdws/aggbug/365727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-12-07 11:00 <a href="http://www.blogjava.net/gdws/archive/2011/12/07/365727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE常用数值函数、转换函数、字符串函数介绍</title><link>http://www.blogjava.net/gdws/archive/2011/11/26/364869.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Fri, 25 Nov 2011 16:33:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/11/26/364869.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/364869.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/11/26/364869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/364869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/364869.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ORACLE常用&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/11/26/364869.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/364869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-11-26 00:33 <a href="http://www.blogjava.net/gdws/archive/2011/11/26/364869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java编程思想之静态技术</title><link>http://www.blogjava.net/gdws/archive/2011/11/26/364868.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Fri, 25 Nov 2011 16:21:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/11/26/364868.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/364868.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/11/26/364868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/364868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/364868.html</trackback:ping><description><![CDATA[静态技术包括静态数据、静态方法、静态初始化程序块等。

　　静态数据是属于某个类的数据成员，而非属于某个具体的对象。也就是说这个类创造出来的对象，都共用同一个数据。

　　view plainprint？

　　class A { static int x；……

　　}

　　静态方法也是属于整个类的，而且静态方法中不能调用非静态数据或方法。

　　view plainprint？

　　class B { public static void Set（int x） {……

　　}

　　用静态数据和静态方法的特性，我们可以专门构造工具类或者验证类。

　　静态初始化程序块，会在类的任何一个静态方法被调用或者任何一个构造函数被执行时被执行。

　　view plainprint？

　　class C {……

　　static { Integer in[4] = new Integer（）；for （int i = 0； i &lt; in.length； ++i） {……

　　}
<img src ="http://www.blogjava.net/gdws/aggbug/364868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-11-26 00:21 <a href="http://www.blogjava.net/gdws/archive/2011/11/26/364868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 7的新特性</title><link>http://www.blogjava.net/gdws/archive/2011/11/08/363140.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 08 Nov 2011 01:23:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/11/08/363140.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/363140.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/11/08/363140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/363140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/363140.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: java 7的新特性&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/11/08/363140.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/363140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-11-08 09:23 <a href="http://www.blogjava.net/gdws/archive/2011/11/08/363140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse调试Bug的七种常用技巧 </title><link>http://www.blogjava.net/gdws/archive/2011/08/23/357138.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 23 Aug 2011 10:32:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/08/23/357138.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/357138.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/08/23/357138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/357138.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/357138.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Eclipse调试Bug的七种常用技巧 &nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/08/23/357138.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/357138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-08-23 18:32 <a href="http://www.blogjava.net/gdws/archive/2011/08/23/357138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql-frontv5.1 key 注册 </title><link>http://www.blogjava.net/gdws/archive/2011/06/22/352811.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 22 Jun 2011 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/06/22/352811.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/352811.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/06/22/352811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/352811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/352811.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: mysql-frontv5.1 key 注册 <br>&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/06/22/352811.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/352811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-06-22 15:48 <a href="http://www.blogjava.net/gdws/archive/2011/06/22/352811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss start winthin 50seconds </title><link>http://www.blogjava.net/gdws/archive/2011/06/18/352574.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sat, 18 Jun 2011 05:21:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/06/18/352574.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/352574.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/06/18/352574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/352574.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/352574.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jboss start winthin 50seconds &nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/06/18/352574.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/352574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-06-18 13:21 <a href="http://www.blogjava.net/gdws/archive/2011/06/18/352574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>