<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>solospider</title>
    <description></description>
    <link>http://solospider.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Topcoder development Project Summerize</title>
        <author>solospider</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://solospider.javaeye.com">solospider</a>&nbsp;
          链接：<a href="http://solospider.javaeye.com/blog/150350" style="color:red;">http://solospider.javaeye.com/blog/150350</a>&nbsp;
          发表时间: 2007年12月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          This is the second time I paticipate in the tc development contest. In this time, the project I chose is Platform API 1.0, this is a project of AOL.<br />The language in this project is Java, and the technologies mainly are: JDBCFactory, Sybase, ConfigManager, ConfigObject and so on.<br />In this project, I spent the week end to read the specification and setup the development environment, 4 days to develop and tes. I have to say the schedule is really tough for me, because everyday I have to go to work in the day, and work on this project in the night at home. In the last day I even only slept for 2 hours :(, maybe I need to think whether to do a full-time job on TC....:)<br />Another thing is that currently I am using Linux FC6 at home, the command is much more difficute than Windows, M$ really did a good job on ux.<br />I think my submission is not in good quality, because there are lots of code style issues in my code. Maybe I will fail this project, but I really learnt something in it.<br />1, Use Jalopy to check the code style.<br />2, Do the most work in the week end, do not left a lot of work on the working days.<br />3, The development schedule should be:<br />a, Read the requirement doc and specification doc<br />b, Read some comment on the forum to get the useful info<br />c, Setup the development & testing environment and download the necessary libs.<br />d, Start coding, use TDD<br />e, Review and Refine<br />f, Check the code style<br />g, Submit
          <br/>
          <span style="color:red;">
            <a href="http://solospider.javaeye.com/blog/150350#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 23 Dec 2007 23:39:33 +0800</pubDate>
        <link>http://solospider.javaeye.com/blog/150350</link>
        <guid>http://solospider.javaeye.com/blog/150350</guid>
      </item>
      <item>
        <title>Lately Plan</title>
        <author>solospider</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://solospider.javaeye.com">solospider</a>&nbsp;
          链接：<a href="http://solospider.javaeye.com/blog/150343" style="color:red;">http://solospider.javaeye.com/blog/150343</a>&nbsp;
          发表时间: 2007年12月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1, Oracle, PL<br />2, ActiveMQ<br />3, GCT<br />----------------<br />3, Spring<br />4, Hibernate<br />5, OOD<br />6, Refactor
          <br/>
          <span style="color:red;">
            <a href="http://solospider.javaeye.com/blog/150343#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 23 Dec 2007 23:07:31 +0800</pubDate>
        <link>http://solospider.javaeye.com/blog/150343</link>
        <guid>http://solospider.javaeye.com/blog/150343</guid>
      </item>
      <item>
        <title>为什么EJB3.0里面没有了home接口</title>
        <author>solospider</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://solospider.javaeye.com">solospider</a>&nbsp;
          链接：<a href="http://solospider.javaeye.com/blog/147801" style="color:red;">http://solospider.javaeye.com/blog/147801</a>&nbsp;
          发表时间: 2007年12月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个问题迷惑了我很久，EJB2.0里面实现Home接口的类是从JDNI里面获取的，然后用来创建一个EJB的实例，这个实例应该是实现了这个EJB接口的RMI Stub，很容易理解。<br />但是在EJB3.0里面取消了这个接口，从JDNI查找的结果不是Home类，而直接是一个EJB的实例，代码如下：<br /><br /><pre name="code" class="java">	InitialContext context = new InitialContext();
	Cart cart = (Cart) context.lookup("CartBean");</pre><br /><br />注：Cart是一个Stateful的SessionBean.<br />如果这个Cart跟2.0一样也是一个RMI Stub的话，那么所有从JNDI查找出来的类应该是连接到同一个Skeleton的，这样的话应该是所有的Client得到的EJB状态是一样的。。。<br />但事实不是，每个客户端查找出来的EJB实例互相的状态是没有影响的，这个到底是为什么呢？
          <br/>
          <span style="color:red;">
            <a href="http://solospider.javaeye.com/blog/147801#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 12 Dec 2007 14:15:13 +0800</pubDate>
        <link>http://solospider.javaeye.com/blog/147801</link>
        <guid>http://solospider.javaeye.com/blog/147801</guid>
      </item>
      <item>
        <title>The patch of the open bug [AMQ-1116]</title>
        <author>solospider</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://solospider.javaeye.com">solospider</a>&nbsp;
          链接：<a href="http://solospider.javaeye.com/blog/146076" style="color:red;">http://solospider.javaeye.com/blog/146076</a>&nbsp;
          发表时间: 2007年12月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          项目中使用Activemq作为消息中间件，ActiveMQ是Apache的开源项目，是一个轻量级的JMS实现。<br />在使用的过程中遇到了一个比较棘手的问题：<br />如果连接到ServiceBroker的Connection设成failover的话，当连接断开的时候，FailoverTransport会启动一个工作线程不断的重连，这个时候如果有一个消息需要发送的话，这个消息会被block住，直到重新建立连接才能发送。不过这个时候用户有可能会想要关闭这个Client端。这时候问题出现了，客户端无法关闭这个重连的线程。<br />原因如下：<br />ActiveMQ在通信层使用了管道过滤器的模式，当客户端要发送一个消息的时候，这个消息会经过一个Filter Chain进行层层处理，org.apache.activemq.transport.MutexTransport是其中的一个，主要作用是对线程加上互斥锁，代码如下：<br /><pre name="code" class="java">    public void oneway(Object command) throws IOException {
        synchronized (writeMutex) {
            next.oneway(command);
        }
    }</pre><br />在MutexTransport后面有一个FailoverTransport，担负着如果连接断开则重新连接的责任，所以FailoverTransport在网络断开的时候会阻塞住，这样writeMutex就无法释放，而用户的关闭请求也是作为一个command传入的，所以Shutdown这个Command就无法传入FailoverTransport通知其停止重连。<br />解决方案：<br />大概的思路就是在MutexTransport做一个判断，如果Command为ShutdownCommand就无须获取writeMutex锁，直接通过MutexTransport进入FailoverTransport,通知其停止重连。<br />MutexTransport的修改代码如下：<br /><pre name="code" class="java">    
public void oneway(Object command) throws IOException {
         if (command instanceof ShutdownCommand) {
		next.oneway(command);
	} else {
                synchronized (writeMutex) {
                      next.oneway(command);
        	}
	}
}</pre>
          <br/>
          <span style="color:red;">
            <a href="http://solospider.javaeye.com/blog/146076#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 04 Dec 2007 23:58:05 +0800</pubDate>
        <link>http://solospider.javaeye.com/blog/146076</link>
        <guid>http://solospider.javaeye.com/blog/146076</guid>
      </item>
      <item>
        <title>Re: 模式不是为编程老鸟总结的</title>
        <author>solospider</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://solospider.javaeye.com">solospider</a>&nbsp;
          链接：<a href="http://solospider.javaeye.com/blog/72295" style="color:red;">http://solospider.javaeye.com/blog/72295</a>&nbsp;
          发表时间: 2007年04月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          要理解一个模式有三个要素要搞清楚：第一，这个模式的特定环境第二，这个模式解决的什么问题第三，这个模式的解决方案其中最好掌握的就是第三，基本上看看书都能学会，其实最重要的也是最难掌握的事前两个，这就是很多时候模式被滥用的原因。前两个光看书是不行的，必须要靠书中的理论和自己的实践的结合才行。
          <br/>
          <span style="color:red;">
            <a href="http://solospider.javaeye.com/blog/72295#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 18 Apr 2007 23:40:06 +0800</pubDate>
        <link>http://solospider.javaeye.com/blog/72295</link>
        <guid>http://solospider.javaeye.com/blog/72295</guid>
      </item>
  </channel>
</rss>