<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>@家军-天行键,君子以自强不息!</title>
    <description></description>
    <link>http://heweiya.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>敏捷学习开发使用多用技术框架</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/208132" style="color:red;">http://heweiya.javaeye.com/blog/208132</a>&nbsp;
          发表时间: 2008年06月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作为一个JAVA开发者,经常受到技术框架造型的烦恼,而我身边更多的技术人在炫耀自己学习会了某某框架,给我的感觉就好像他学会了如何徒手上天一样的神圣.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本篇文章在于普及多种流行的JAVA技术框架在第一时间你快速掌握的方法.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要求读者至少有对一种流行组合框架的学习使用,比如struts+spring+hibernate.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也没有什么悬的,其实本篇主要讲解的是maven自动化你的项目,以国外框架组合appfuse和国内springside为主,让你在短短的时间之内把想要的框架集成,并准备开发.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所需要的软件及下载:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maven2 下载地址:<a href="http://maven.apache.org/start/download.html">http://maven.apache.org/start/download.html</a>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; springside 下载地址:<a href="http://www.springside.org.cn//download/springside-2.0-RC1-allinone.zip" title="http://www.springside.org.cn//download/springside-2.0-RC1-allinone.zip" target="_blank">http://www.springside.org.cn//download/springside-2.0-RC1-allinone.zip</a>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysql5</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用方法及步骤:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1,下载并安装配置maven2.(请google一下吧,争取你在cmd命令下 mvn -v 能够执行成功!)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配置maven2文件conf/settings.xml的一些注意点:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000;"> 保存位置</span>
:默认的位置为：${user.dir}/.m2/repository目录中（${user.dir} 指windows 中的用户目录）,所以你就把配置修改成为:(其中C:/Documents and Settings/yaya/ 是我本机的信息,读者可以根据自己的需要进行修改)</p>
<pre name="code" class="xml">&lt;localRepository&gt;C:/Documents and Settings/yaya/.m2/repository&lt;/localRepository&gt;</pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #ff0000;">使用代理服务器&nbsp;&nbsp;</span></p>
<pre name="code" class="xml">  &lt;proxies&gt;
	 &lt;proxy&gt;
        &lt;id&gt;optional&lt;/id&gt;
        &lt;active&gt;true&lt;/active&gt;
        &lt;protocol&gt;http&lt;/protocol&gt;
        &lt;username&gt;&lt;/username&gt;
        &lt;password&gt;&lt;/password&gt;
        &lt;host&gt;172.17.18.80&lt;/host&gt;
        &lt;port&gt;8080&lt;/port&gt;
        &lt;nonProxyHosts&gt;&lt;/nonProxyHosts&gt;
        &lt;/proxy&gt;
  &lt;/proxies&gt;</pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 这个尤其对哪些公司内部使用代理上网的读者有用.</p>
<p>&nbsp;&nbsp;&nbsp; 2,开始下载组件框架.</p>
<p>&nbsp;&nbsp;&nbsp; 打开网址:<a href="http://appfuse.org/display/APF/AppFuse+QuickStart" title="http://appfuse.org/display/APF/AppFuse+QuickStart">http://appfuse.org/display/APF/AppFuse+QuickStart</a>
</p>
<p>&nbsp;&nbsp;&nbsp; 看到所有的技术框架:</p>
<p>&nbsp;&nbsp;&nbsp; <img src="http://www.javaeye.com/upload/picture/pic/16637/c45eb7a2-ef2e-35d3-9fcd-0089474c2d27.jpg?1214444721" height="497" alt="appfuse所有框架" style="border: 0;" width="746" />
<img src="file:///C:/DOCUME~1/yaya/LOCALS~1/Temp/moz-screenshot.jpg" alt="" />
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好了,这就是本篇文章的精华了,你想选择什么样的框架呢?呵呵,我选择一种框架来进行说明吧,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我现在对taperstry想了解更多,就以taperstry basic为讲解吧.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 建议创建一个空的目录,比如D盘下TEST,进入dos模式,到D:\TEST目录下,然后COPY一下mvn的命令并执行:</p>
<pre name="code" class="xml">mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-tapestry -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.2 -DgroupId=com.mycompany.app -DartifactId=myproject</pre>
<p>&nbsp;好了,会在你的文件下载创建如下图所示的目录及文件:</p>
<p><img src="http://www.javaeye.com/upload/picture/pic/16639/5676b2c0-4b16-3ec7-a613-bfa6d85b12ea.jpg?1214445247" height="93" alt="执行MVN结果" width="532" />
</p>
<p>&nbsp;&nbsp;&nbsp; 在此请注意,maven已经生成了所有的配置文件和依赖包的URL和版本,并且还有数据库的信息,默认使用的是本地的mysql5数据库,如果你的数据库登录用户名是ROOT和密码为空,就可以不理会如下的配置,如果不是,请修改pom.xml当中的配置,找到root关键字,比如我的配置如下:</p>
<pre name="code" class="xml"> &lt;!-- Database settings --&gt;
        &lt;dbunit.dataTypeFactoryName&gt;org.dbunit.dataset.datatype.DefaultDataTypeFactory&lt;/dbunit.dataTypeFactoryName&gt;
        &lt;dbunit.operation.type&gt;CLEAN_INSERT&lt;/dbunit.operation.type&gt;
        &lt;hibernate.dialect&gt;org.hibernate.dialect.MySQL5InnoDBDialect&lt;/hibernate.dialect&gt;
        &lt;jdbc.groupId&gt;mysql&lt;/jdbc.groupId&gt;
        &lt;jdbc.artifactId&gt;mysql-connector-java&lt;/jdbc.artifactId&gt;
        &lt;jdbc.version&gt;5.0.5&lt;/jdbc.version&gt;
        &lt;jdbc.driverClassName&gt;com.mysql.jdbc.Driver&lt;/jdbc.driverClassName&gt;
        &lt;jdbc.url&gt;&lt;![CDATA[jdbc:mysql://localhost/myproject?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8]]&gt;&lt;/jdbc.url&gt;
        &lt;jdbc.username&gt;root&lt;/jdbc.username&gt;
        &lt;jdbc.password&gt;yaya&lt;/jdbc.password&gt;</pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果保证以上没有问题,请在DOS命令下进行目录:D:\test\myproject,然后执行MVN命令:</p>
<pre name="code" class="xml">mvn install</pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 则会生成如下的目录结构:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img src="http://www.javaeye.com/upload/picture/pic/16641/92e28bd8-89d3-39dd-990d-994641352b13.jpg?1214445859" height="267" alt="mvn生成项目文件结构" width="472" />
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是不是很爽呢?已经生成了包括war包\testcase在内的所有信息,如何进行开发呢?执行maven命令如下:</p>
<pre name="code" class="xml">mvn eclispe:eclipse</pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以生成eclispe的项目文件,读者只需要把这个项目导入到你当前的eclipse的workspace当中就可以了.</p>
<p>&nbsp;&nbsp;&nbsp; 同样用这种方法可以生成很多你想要的技术框架组合和项目原型.不需要你再为技术框架烦恼.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是老外生成的技术框架技术含金量高,有很多不用的功能和组件,有的时候也看不明白其中的用意,好了,国内有人也做了同样的事情,他就是<a href="http://www.springside.org.cn" title="springside">springside</a>
,如果你下载了他的allinone包的话,其中要提到的就是他的eclise的plugin</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3,使用国内最权威的JAVA流行组合技术框架springside</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目前本版本只支持eclpise3.2,解压后把目录:\springside-2.0-RC1-allinone\tools\springside-ide\target\eclipse\plugins COPY到eclipse3.2\plugins目录下,启动eclipse,创建新的工程,如下大家参考官方的网站吧:同样也可能参考:\springside-2.0-RC1-allinone\docs\reference\cn\SpringSide 2.0 Reference.chm文章</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4,springside3同样也支持MVN的方法对项目的更新,<a href="http://wiki.springside.org.cn/display/SpringSide3/Quick+Start" title="http://wiki.springside.org.cn/display/SpringSide3/Quick+Start">参考文章</a>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 呵呵,至此为止吧,曾经经常为组合技术框架费心的我,现在已经抛弃这种做法,更多的精力考虑业务的需求了.等什么呀!,你也开始吧.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/208132#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 26 Jun 2008 10:23:11 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/208132</link>
        <guid>http://heweiya.javaeye.com/blog/208132</guid>
      </item>
      <item>
        <title>超简单实现:Ext.TabPanel加入iframe</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/168550" style="color:red;">http://heweiya.javaeye.com/blog/168550</a>&nbsp;
          发表时间: 2008年03月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 太简单了,参考代码:</p><pre name="code" class="js"> funtab.add({
                   title:titleText ,
                   id:'tab_'+id,
                   iconCls: 'tabs',                  
                   margins:'0 4 4 0',
                   autoHeight:true,
                   autoScroll:true,
                   autoWidth:true,
                   closable:true,
                   frame:true,
                   html:'&lt;iframe src=&quot;'+UrlText+'&quot; width=&quot;100%&quot; height=&quot;400&quot; frameborder=&quot;0&quot; scrolling=&quot;auto&quot;&gt;&lt;/iframe&gt;'
             }).show();</pre><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大家注意一下html:的属性,只要加入就行了,根本不需要创造一个<span><span class="hilite1"><span class="hilite1">Ext</span></span>.DomHelper.append的iframe的对象,然后再加入到tabpanel当中,</span></p><p>&nbsp;</p><p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/168550#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Mar 2008 09:45:32 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/168550</link>
        <guid>http://heweiya.javaeye.com/blog/168550</guid>
      </item>
      <item>
        <title>看图说话:把icesoft加入到jsf+spring+hibernate当中</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/156897" style="color:red;">http://heweiya.javaeye.com/blog/156897</a>&nbsp;
          发表时间: 2008年01月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文目的,轻松实现ajax组件式编程,并引用轻量级框架完成WEB应用.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开发环境:myeclipse 6.01GA jave ee5&nbsp; tomcat6.0</p><p>&nbsp;&nbsp;&nbsp;&nbsp; 组件版本:jsf1.2(呵呵) spring2.0 hibernate3.2 icesoft1.62</p><h3>第一部分:集成环境测试</h3><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1下载icesoft for myeclipse plugin <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 地址: <a href="http://www.icefaces.org//main/downloads/os-downloads.iface">http://www.icefaces.org//main/downloads/os-downloads.iface</a>&nbsp;&nbsp; </p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 分别把features和plugins放在myeclipse相应的目录下:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><p><img src="../../upload/picture/pic/7077/c292e75c-51ee-3510-935e-0ec55bd1af7c.jpg?1200549907" height="135" alt="icesoft组件" width="748" /> </p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)创建web project<p><img src="../../upload/picture/pic/7047/33bedfee-652d-3840-8738-0311efb1cbde.jpg?1200549070" alt="" /> </p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)增加JSF框架<p><img src="../../upload/picture/pic/7051/1c92eaf0-2740-3e15-8f85-0e175a2eaba9.jpg?1200549204" alt="" /> </p><p><img src="../../upload/picture/pic/7053/5affd56a-354b-388d-8f4a-301a0fa9db41.jpg?1200549236" alt="" /></p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4)加入icesoft组件<p><img src="../../upload/picture/pic/7055/b8c53a4b-7bae-31ed-b88c-3624e2a5a77b.jpg?1200549264" alt="" /> </p><p><img src="../../upload/picture/pic/7057/4adf8492-5b74-35cd-a7ac-dc4150567e2e.jpg?1200549297" alt="" /> </p><p><img src="../../upload/picture/pic/7059/7daf4058-bdf9-38e3-9540-554cef9f442a.jpg?1200549331" alt="" /> </p><p><img src="../../upload/picture/pic/7061/6c4e9f03-0957-37d3-bd9f-87e77d58bf17.jpg?1200549379" alt="" /> </p>&nbsp;&nbsp;&nbsp;&nbsp; 5)加入SPRING框架<p><img src="../../upload/picture/pic/7063/9595d64d-7ca2-3b9e-ac9b-be1fc9eacf41.jpg?1200549425" alt="" /> </p><p>&nbsp;<img src="../../upload/picture/pic/7065/6a5bf55c-4c40-31be-bcad-c3338325a4d9.jpg?1200549471" alt="" /></p>&nbsp;&nbsp;&nbsp;&nbsp; 6)加入hibernate框架<p><img src="../../upload/picture/pic/7067/22c75d4f-0fb8-388a-bdf1-71411bb9aec9.jpg?1200549498" alt="" /> </p><p><img src="../../upload/picture/pic/7069/19d4725f-da27-3a77-af54-985f46f67e46.jpg?1200549584" alt="" /> </p><p><img src="../../upload/picture/pic/7071/febad345-85bd-3482-9c96-6b9f7ee0aba1.jpg?1200549614" alt="" /> </p>&nbsp;&nbsp;&nbsp;&nbsp; 7)创建一个xhtml页面<p><img src="../../upload/picture/pic/7073/a73e5501-eee0-3a6c-a785-e25428294ec5.jpg?1200549665" alt="" /> </p><p><img src="../../upload/picture/pic/7075/6066cddb-133f-3b25-b2f8-33615a3be843.jpg?1200549800" alt="" /></p><p>&nbsp;&nbsp;&nbsp;&nbsp; 8)测试,http://localhost:8090/icesoft/test.iface 可以通过.</p><h3>第二部分:集成jsf+spring+hibernate</h3><p>&nbsp;&nbsp;&nbsp;&nbsp; 程序基本组织形式:</p><p><img src="../../upload/picture/pic/7079/6ddec358-7f54-3844-9c27-2f30c0f81da8.jpg?1200551165" alt="" /></p><p> 所有代码见附件.</p><p>其中没有包括的代码列表如下:</p><p>faces-config.xml</p><pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE faces-config PUBLIC &quot;-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN&quot; &quot;http://java.sun.com/dtd/web-facesconfig_1_1.dtd&quot;&gt;

&lt;faces-config&gt;
	&lt;application&gt;
		&lt;variable-resolver&gt;
			org.springframework.web.jsf.DelegatingVariableResolver
		&lt;/variable-resolver&gt;
		&lt;view-handler&gt;
			com.icesoft.faces.facelets.D2DFaceletViewHandler
		&lt;/view-handler&gt;
	&lt;/application&gt;	
	&lt;managed-bean&gt;
		&lt;managed-bean-name&gt;prtAgeBean&lt;/managed-bean-name&gt;
		&lt;managed-bean-class&gt;
			com.antbee.hnds.action.PrtAgeBean
		&lt;/managed-bean-class&gt;
		&lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;
		&lt;managed-property&gt;
			&lt;property-name&gt;proAgencyDAO&lt;/property-name&gt;
			&lt;value&gt;#{proAgencyDAO}&lt;/value&gt;
		&lt;/managed-property&gt;		
	&lt;/managed-bean&gt;
&lt;/faces-config&gt;

</pre><p>&nbsp;web.xml</p><pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;web-app xmlns=&quot;http://java.sun.com/xml/ns/j2ee&quot;
	xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; version=&quot;2.4&quot;
	xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd&quot;
	id=&quot;hnds4&quot;&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;context&lt;/servlet-name&gt;
		&lt;servlet-class&gt;
			org.springframework.web.context.ContextLoaderServlet
		&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
		&lt;param-value&gt;classpath:applicationContext.xml&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;javax.faces.CONFIG_FILES&lt;/param-name&gt;
		&lt;param-value&gt;/WEB-INF/faces-config.xml&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
		&lt;param-value&gt;server&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;com.icesoft.faces.uploadDirectory&lt;/param-name&gt;
		&lt;param-value&gt;upload&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;com.icesoft.faces.uploadMaxFileSize&lt;/param-name&gt;
		&lt;param-value&gt;4048576&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;context-param&gt;
		&lt;param-name&gt;javax.faces.DEFAULT_SUFFIX&lt;/param-name&gt;
		&lt;param-value&gt;.xhtml&lt;/param-value&gt;
	&lt;/context-param&gt;
	&lt;listener&gt;
		&lt;listener-class&gt;
			com.icesoft.faces.util.event.servlet.ContextEventRepeater
		&lt;/listener-class&gt;
	&lt;/listener&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
		&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;Persistent Faces Servlet&lt;/servlet-name&gt;
		&lt;servlet-class&gt;
			com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet
		&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;Blocking Servlet&lt;/servlet-name&gt;
		&lt;servlet-class&gt;
			com.icesoft.faces.webapp.xmlhttp.BlockingServlet
		&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;uploadServlet&lt;/servlet-name&gt;
		&lt;servlet-class&gt;
			com.icesoft.faces.component.inputfile.FileUploadServlet
		&lt;/servlet-class&gt;
		&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;
	&lt;/servlet&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;Persistent Faces Servlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;Persistent Faces Servlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/xmlhttp/*&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;Persistent Faces Servlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;*.iface&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;Blocking Servlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/block/*&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;uploadServlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/uploadHtml&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
	&lt;welcome-file-list&gt;
		&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
	&lt;/welcome-file-list&gt;
	&lt;!--Tomcat 5 Workaround: Listener used to initialize JSF on startup--&gt;
	&lt;!--Remove comment tags to enable listener.
		&lt;listener&gt;
		&lt;listener-class&gt;com.sun.faces.config.ConfigureListener&lt;/listener-class&gt;
		&lt;/listener&gt;
	--&gt;
	&lt;!--Tomcat 5 Workaround: Listener implementation to handle web application lifecycle event--&gt;
	&lt;!--Remove comment tags to enable listener.
		&lt;listener&gt;
		&lt;listener-class&gt;com.sun.faces.application.WebappLifecycleListener&lt;/listener-class&gt;
		&lt;/listener&gt;
	--&gt;
&lt;/web-app&gt;

</pre><p>&nbsp;test2.html</p><pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;
	xmlns:ui=&quot;http://java.sun.com/jsf/facelets&quot;
	xmlns:h=&quot;http://java.sun.com/jsf/html&quot;
	xmlns:f=&quot;http://java.sun.com/jsf/core&quot;
	xmlns:ice=&quot;http://www.icesoft.com/icefaces/component&quot;&gt;
	&lt;head&gt;
		&lt;title&gt;My Facelets Page&lt;/title&gt;
		&lt;ice:outputStyle rel='stylesheet' type='text/css'
		 href='xmlhttp/css/xp/xp.css' /&gt;
		&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;f:view&gt;
			&lt;ice:form partialSubmit=&quot;true&quot;&gt;
				&lt;ice:dataTable border=&quot;1&quot; var=&quot;u&quot; value=&quot;#{prtAgeBean.agency}&quot;
					id=&quot;data&quot; rows=&quot;10&quot;&gt;
					&lt;f:facet name=&quot;header&quot;&gt;
						&lt;ice:outputText value=&quot;机票代理人基本信息列表&quot;&gt;&lt;/ice:outputText&gt;
					&lt;/f:facet&gt;
					&lt;ice:column id=&quot;column1&quot;&gt;
						&lt;ice:rowSelector&gt;&lt;/ice:rowSelector&gt;
						&lt;f:facet name=&quot;header&quot;&gt;
							&lt;ice:outputText value=&quot;代理号&quot;&gt;&lt;/ice:outputText&gt;
						&lt;/f:facet&gt;
						&lt;ice:outputText value=&quot;#{u.id.offcIataCd}&quot;&gt;&lt;/ice:outputText&gt;

					&lt;/ice:column&gt;
					&lt;ice:column id=&quot;column2&quot;&gt;
						&lt;f:facet name=&quot;header&quot;&gt;
							&lt;ice:outputText value=&quot;Office号&quot;&gt;&lt;/ice:outputText&gt;
						&lt;/f:facet&gt;
						&lt;ice:outputText value=&quot;#{u.id.offcCd}&quot;&gt;&lt;/ice:outputText&gt;

					&lt;/ice:column&gt;
					&lt;ice:column id=&quot;column3&quot;&gt;
						&lt;f:facet name=&quot;header&quot;&gt;
							&lt;ice:outputText value=&quot;中文名称&quot;&gt;&lt;/ice:outputText&gt;
						&lt;/f:facet&gt;
						&lt;ice:outputText value=&quot;#{u.id.offcChnNm}&quot;&gt;&lt;/ice:outputText&gt;
					&lt;/ice:column&gt;
					&lt;ice:column id=&quot;column4&quot;&gt;
						&lt;f:facet name=&quot;header&quot;&gt;
							&lt;ice:outputText value=&quot;英文名称&quot;&gt;&lt;/ice:outputText&gt;
						&lt;/f:facet&gt;
						&lt;ice:outputText value=&quot;#{u.id.offcEngNm}&quot;&gt;&lt;/ice:outputText&gt;
					&lt;/ice:column&gt;
					&lt;ice:column id=&quot;column5&quot;&gt;
						&lt;f:facet name=&quot;header&quot;&gt;
							&lt;ice:outputText value=&quot;分布系统&quot;&gt;&lt;/ice:outputText&gt;
						&lt;/f:facet&gt;
						&lt;ice:outputText value=&quot;#{u.id.ttlSysCd}&quot;&gt;&lt;/ice:outputText&gt;
					&lt;/ice:column&gt;
					&lt;f:facet name=&quot;footer&quot;&gt;
						&lt;ice:outputText value=&quot;共有#{prtAgeBean.agency.rowCount}条记录!&quot;&gt;&lt;/ice:outputText&gt;
					&lt;/f:facet&gt;
				&lt;/ice:dataTable&gt;
			
			&lt;ice:panelGrid border=&quot;1&quot; columns=&quot;1&quot; styleClass=&quot;scrollerTable2&quot; columnClasses=&quot;standardTable_ColumnCentered&quot; style=&quot;width: 552px; &quot;&gt;
				&lt;ice:dataPaginator for=&quot;data&quot; fastStep=&quot;10&quot; pageCountVar=&quot;pageCount&quot;
					pageIndexVar=&quot;pageIndex&quot; paginator=&quot;true&quot; paginatorMaxPages=&quot;9&quot;&gt;
					&lt;f:facet name=&quot;first&quot;&gt;
						&lt;ice:graphicImage style=&quot;border:none;&quot;
							url=&quot;xmlhttp/css/xp/css-images/arrow-first.gif&quot;&gt;&lt;/ice:graphicImage&gt;
					&lt;/f:facet&gt;
					&lt;f:facet name=&quot;last&quot;&gt;
						&lt;ice:graphicImage style=&quot;border:none;&quot;
							url=&quot;xmlhttp/css/xp/css-images/arrow-last.gif&quot;&gt;&lt;/ice:graphicImage&gt;
					&lt;/f:facet&gt;
					&lt;f:facet name=&quot;previous&quot;&gt;
						&lt;ice:graphicImage style=&quot;border:none;&quot;
							url=&quot;xmlhttp/css/xp/css-images/arrow-previous.gif&quot;&gt;&lt;/ice:graphicImage&gt;
					&lt;/f:facet&gt;
					&lt;f:facet name=&quot;next&quot;&gt;
						&lt;ice:graphicImage style=&quot;border:none;&quot;
							url=&quot;xmlhttp/css/xp/css-images/arrow-next.gif&quot;&gt;&lt;/ice:graphicImage&gt;
					&lt;/f:facet&gt;
					&lt;f:facet name=&quot;fastforward&quot;&gt;
						&lt;ice:graphicImage style=&quot;border:none;&quot;
							url=&quot;xmlhttp/css/xp/css-images/arrow-ff.gif&quot;&gt;&lt;/ice:graphicImage&gt;
					&lt;/f:facet&gt;
					&lt;f:facet name=&quot;fastrewind&quot;&gt;
						&lt;ice:graphicImage style=&quot;border:none;&quot;
							url=&quot;xmlhttp/css/xp/css-images/arrow-fr.gif&quot;&gt;&lt;/ice:graphicImage&gt;
					&lt;/f:facet&gt;
				&lt;/ice:dataPaginator&gt;

			&lt;/ice:panelGrid&gt;
			&lt;/ice:form&gt;
		&lt;/f:view&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>&nbsp;<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/156897#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 17 Jan 2008 14:33:09 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/156897</link>
        <guid>http://heweiya.javaeye.com/blog/156897</guid>
      </item>
      <item>
        <title>软件侵略-外包</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/156013" style="color:red;">http://heweiya.javaeye.com/blog/156013</a>&nbsp;
          发表时间: 2008年01月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有的时候感觉中国的外包行业,尤其对于中国这个信息化不足的国家来说,感觉就是一场浩荡的&quot;软件侵略&quot;,之所以这么认为我感觉如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       1)软件外包对于中国来说一般是最低级的趣味编码,与业务流程毫无关系,直接打击软件的创造力,尤其是遮人耳目,外国软件只手遮天.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       2)什么东西在中国引进后都要变味.且其名曰&quot;中国特色&quot;,外包行业也不例外,君不见现在的外包是某些人的权利场,根本不管你是不是重要岗位的临时聘请, 还是很重要场景的多余人员,即使知识库的节点积累到这群外包人员手中,而其利益者根本视而不见,这个跟&quot;汉奸&quot;有的一比.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)外包行业与软件的创新有着一定的等级关系,本身外包对于软件创新来说就是二流或者三流的对比.但只有中国才大力挺进,所以你不要企望中国这个大国有什么好的操作系统,什么好的数据库,如果近5年有,哪一定是抄袭和修改.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我真是感到中国软件产业的悲哀.<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/156013#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 15 Jan 2008 14:25:50 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/156013</link>
        <guid>http://heweiya.javaeye.com/blog/156013</guid>
      </item>
      <item>
        <title>展望2008</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/151126" style="color:red;">http://heweiya.javaeye.com/blog/151126</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          　　今年没有总结，是因为还呆在素有人贩子之称的外包公司。 <br />　　展望2008，国际化。与狼共舞最好先让狼吃掉没消化时醒悟！ <br />　　通过paypal和国外虚拟主机，我发现国外信息化程度之高而让我望而止步。通过国家体制的边缘而知道国家的控制和愚蠢，军事上的粪青让我的思想保守而且渺小。 <br />　　&ldquo;人贵有自知之明&rdquo;，亡羊补牢还有得救。手中的长枪短炮欣然接受西洋枪炮的功击，只要求自己在被狼吃掉没消化时奋争。 <br />　　我要通过享受国外的虚拟主机与老外扯上关系，一则易趣的交易，二则把网站www.1718zx.cn和www.17tools.cn及一系列即将生成的网站部署，生成一个产业链网，然后大量快速的生产出很多的网站。就算是第一次工业革命时的生产模式吧，虽然比较老套，但有此量产基础就可以提到信息化和机警作战能力了。 <br />　　把生活当中的一些灵感记录整理起来，做成自己的网站，是不是也算对社会的贡献呀！呵呵，努力奋斗! <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有的时候感觉中国的外包行业,尤其对于中国这个信息化不足的国家来说,感觉就是一场浩荡的&quot;软件侵略&quot;,之所以这么认为我感觉如下: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)软件外包对于中国来说一般是最低级的趣味编码,与业务流程毫无关系,直接打击软件的创造力,尤其是遮人耳目,外国软件只手遮天. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)什么东西在中国引进后都要变味.且其名曰&quot;中国特色&quot;,外包行业也不例外,君不见现在的外包是某些人的权利场,根本不管你是不是重要岗位的临时聘请,还是很重要场景的多余人员,即使知识库的节点积累到这群外包人员手中,而其利益者根本视而不见,这个跟&quot;汉奸&quot;有的一比. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)外包行业与软件的创新有着一定的等级关系,本身外包对于软件创新来说就是二流或者三流的对比.但只有中国才大力挺进,所以你不要企望中国这个大国有什么好的操作系统,什么好的数据库,如果近5年有,哪一定是抄袭和修改. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我真是感到中国软件产业的悲哀. <p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/151126#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/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 09:55:06 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/151126</link>
        <guid>http://heweiya.javaeye.com/blog/151126</guid>
      </item>
      <item>
        <title>文摘：由《亮剑》引出的话题</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/145752" style="color:red;">http://heweiya.javaeye.com/blog/145752</a>&nbsp;
          发表时间: 2007年12月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          来自于 <a href="http://forum.defence.org.cn/redirect.php?tid=19097&goto=lastpost" target="_blank">大嘴军事论坛</a><br />   大嘴兄:近日无大事，找了些资料，看是不是对你的提问有所帮助。<br /><strong>分三个方面:<br />1.陈赓和386旅在抗战中的发展史。<br />2.八路军晋西北的抗战史。<br />3.关于《亮剑》。</strong><br /><br /><strong>一、陈赓和386旅在抗战中的发展史。</strong><br />     红军在抗日战争初期，北上红军改编为第八路军，初期时部队编为正规编制的，有115师、120师、129师和陕甘宁留守兵团，还有9个办事处。<br />129师师长刘伯承，下辖385旅、386旅和一个教导团。<br />386旅是129师的主力旅。<br />     1937年8月，工农红军第四方面军第31军在陕西省富平县改编为国民革命军第八路军第129师第386旅，全旅约5700人。陈赓任旅长，陈再道任副旅长（后许世友），李聚奎任参谋长，王新亭任政治部（初称政训处）主任。下辖由红31军第91师改编的第771团和红31军第93师改编的第772团。<br />     9月30日，386旅在第129师师部率领下，由陕西省富平县出发东渡黄河，<br />10月18日，挺进到山西省昔阳、平定以东地区，先后取得长生口、七亘村、黄崖底等战斗胜利。接着，派出小分队和工作组深入晋冀豫边广大地区，配合当地中共组织开展游击战争，创建抗日根据地。<br />     1938年2～3月，配合晋南国民党军和晋西北、晋西南的八路军作战，在正太铁路和邯郸至长治公路沿线展开交通破袭战和伏击战，先后取得神头岭、响堂铺等战斗胜利。<br />     4月，参加晋东南地区的反“九路围攻” 。<br />4月下旬，向豫北地区发展，开辟了安阳、林县、辉县山区抗日根据地。<br />到1938年，386旅得到较大发展，第771团调归第129师独立旅建制，第129师补充团和东进纵队第1、第3团合编的新1团于7～8月间先后归第386旅建制，全旅达8000余人。<br />     12月中旬，第772团留太行区，旅主力随第129师挺进平汉铁路以东，参加开辟冀南抗日根据地的斗争。<br />     1939年1～3月，第386旅与冀南军区部队一道，粉碎了日伪军3万余人的“扫荡”，取得香城固等战斗的胜利。<br />     3月以后，当日军扫荡重点转向山区时，第386旅奉命返回太行抗日根据地，第772团归建。冀南军区先遣支队第3大队划归第386旅建制，改称第386旅补充大队。<br />     7月，第386旅参加了粉碎日军对太行山区的夏季“扫荡”的作战。<br />1940年1月中旬，第386旅奉命复返太岳区，和第385旅等部一道，奋起反击国民党顽军的进攻，参加了磁武涉林战役，巩固了太岳抗日根据地。<br />     5～6月，第772团番号未变，新1团、补充团、补充大队分别改为第16、第17、第18团。并成立太岳军区，由第386旅兼管军区（对外用太岳纵队名义）。<br />     8～12月，参加百团大战。<br />     1941年1月，第386旅改为第129师机动部队，免兼太岳军区。<br />     8月，第386旅归太岳纵队建制，太岳纵队司令员陈赓兼任旅长，辖第772、第16、第17、第18团。与此同时，奉八路军总部命令，第386旅第17、第18团参加太岳南进支队，在临汾至屯留公路以南、沁河以西，开辟了岳南（太岳以南）抗日根据地。挫败了日、伪军对抗日根据地的“蚕食”、“扫荡”和“治安强化运动”。<br />     太平洋战争爆发后，第386旅在极端困难的情况下，派出武装工作队和小分队，深入敌占区，开展军事、政治攻势，建立小块根据地。在此期间，王近山任第386旅旅长。<br />     1943年3月，386旅兼太岳军区第2军分区。此后，第7721团调归太岳军区第3军分区，第16团调陕甘宁边区。<br />     1945年8月下旬，刘忠任第386旅旅长。辖第772、第20团和士敏独立团（后改为第21团）。接着，参加上党战役。<br />     10月7日，386旅改编为晋冀鲁豫军区第4纵队第10旅，辖第28团（原第772团）、第29团（原第20团）、第30团（原第21团）。<br />     <strong>《亮剑》中按人物刻划，李云龙的司令员、师长和旅长应分别是副总司令彭德怀，119师师长刘伯承和386旅旅长陈赓，但由上面资料可知， 386旅最北的战线在山西省昔阳、平定以东地区，已属晋中了，大多还是战斗在晋东南、河南、河北地区，是晋冀鲁豫根据地的前身，书中大量战例也多在晋中南和河北一带，所谓“晋西北铁三角”之说，当是艺术构思，这个最后说。</strong><br /><strong><br />  八路军晋西北的抗战史</strong><br />     晋西北地区，东起同蒲路北段，与晋察冀北岳区相接；西至黄河，与陕甘宁边区隔河相连；南至汾(阳)离(石)公路，与晋军驻区毗邻；北至清水河，与大青山区连接。境内辖区38县，为八路军控制的县城有兴县、临县、保德、河曲、偏关、岢岚6城。<br />负责开辟晋西北抗日根据地的，是八路军的120师。<br />    师长贺龙、副师长萧克，下辖358旅，(旅长卢冬生、副旅长李井泉、参谋长姚喆)、359旅(旅长陈伯钧、副旅长王震、)和教导团。<br />     主力358旅下辖两个团，715团(团长王尚荣)、716团(团长宋时轮)。<br />     358旅是第120师主力旅。<br />     1937年8月，中国工农红军第二方面军第2军团和红军第28军在陕西省富平县改编为国民革命军第八路军第120师第358旅，卢冬生任旅长，但未到职，旋由张宗逊任代旅长、旅长，李井泉任副旅长，姚喆任参谋长。下辖由红2军团第4师编成的第715团和由红2军团第6师和红军第28军编成的第716团，共 5000余人。<br />     9月3日，第358旅东渡黄河，开赴山西抗日前线，于28日进至晋西北的神池、八角堡地区，发动群众，开辟抗日根据地。随后配合国民党军在雁门关东西长城各要隘作战。<br />同月，第716团团长宋时轮率所部第2营及侦察连组成雁北支队（亦称宋支队），进入雁北地区发动群众，开展游击战争。<br />     10月，在配合国民党军进行忻口会战中，第358旅深入日军侧后，在辛庄、雁门关等地区破击公路，袭击日军运输队。<br />     1938年1月，部队进行整编，将忻（县）、崞（县）（今原平）独立团改编为该旅第714团。1938年2月20日起，日军从南北两线多路围攻晋西北中心区，占领偏关、保德、宁武、岢岚、河曲、神池、五寨7座县城，国民党军队溃逃。第120师师部指挥第三五八旅、第三五九旅，在同蒲路北段原平、阳曲地区毁桥破路，连续攻占平社、豆罗、关城、田家庄等车站和据点，阻敌南进。<br />     2月28日，师主力急返岚县，3月6日起，集中主力4个团，加独立一支队等部队，打击深入岢岚、五寨之敌。经过围困岢岚、五寨，夜袭三井镇，组织义井镇虎北村战斗、神池凤凰山伏击战，共歼敌1500余人，至4月1日，收复7座县城。晋西北根据地稳定。<br />     3～4月，第358旅会同第359旅等部反击日伪军对晋西北地区的首次围攻，收复7座县城。5月，为配合国民党军反攻归绥（今呼和浩特市），旅部率第716团开赴雁北，在朔县（今朔州）、岱岳（今山阴）、怀仁间开展游击战。<br />     5月，第120师派出由李井泉等率领的大青山支队，从五寨进入雁北地区。<br />     8月向绥远挺进，9月初，越过平绥铁路，同杨植霖领导的蒙汉人民抗日游击队会合。以第715团及师直骑兵营等部编成大青山支队，进军塞外，协同当地蒙汉人民游击队，开辟大青山抗日游击根据地。<br />     9月下旬，大青山支队留一部武装在绥中活动，主力进到武川、百灵庙以西地区进行游击战争。到12月，开辟了以大青山为依托的绥西、绥南、绥中三块游击根据地，逐步同晋西北根据地连成一片。<br />      9～11月，旅部率第714、第716团向同蒲铁路北段和平绥铁路西段出击，取得了滑石片等战斗的胜利。<br />     1938年12月，第715团（欠第2营）、第716团分别从大青山和晋西北挺进冀中。<br />     1939年1～3月，日伪军对冀中区进行第三、第四、第五次围攻时，第715、第716团取得邢家庄、黑马张庄等战斗的胜利。接着又参加了齐会战斗。<br />      5月，第358旅旅长张宗逊、政治委员张平化率旅机关部分干部到达冀中，组成纵队（亦称张纵队）指挥部，统一指挥独立第1、第2旅。同时，将留守晋西北地区的第714团、警备第6团、独立第1、第2团及雁北第6支队等部编为新第358旅（亦称彭358旅），彭绍辉任旅长，罗贵波任政治委员。<br />     9月下旬，参加陈庄战斗。年底，国民党顽固派发动第一次反共高潮，阎锡山命令其晋绥军旧军向山西新军发动武装进攻，制造十二月事变（亦称“晋西事变”），新358旅配合山西新军进行自卫还击，打退了山西旧军的进攻。<br />     1940年2月初，第358旅由冀中返回晋西北，新358旅遂改称独立第2旅。<br />     8～10月，第358旅参加百团大战。<br />     11月，第120师进行整编，第3支队第7、第8团合编为第8团，归第358旅建制，原第358旅第4团改称第7团，全旅辖第7、第8、第716团，共7400余人。<br />     1942年5月，第358旅与其他部队协同作战，取得田家会战斗的胜利。<br />     1943年国民党顽固派不断增兵包围陕甘宁边区。为保卫中共中央，保卫陕甘宁边区，6月，第358旅（欠第7团）奉命开赴延安。<br />     1944年2月，第358旅第7团由晋西北到达延安归建，该团分别编入旅直属队和其他3个团。第358旅进驻陕甘宁边区葭县（今佳县）葫芦河川地区后，在执行保卫边区任务的同时，开展整风和大生产运动。1943～1944年开荒14万亩，实现了粮食、蔬菜自给有余。<br />     1945年7月，国民党顽固派集中9个师兵力进犯陕甘宁边区关中地区，第358旅协同新编第4旅进行反击作战，打退顽军进攻，保卫了陕甘宁边区。8月，为打击拒不投降的日伪军，第358旅东渡黄河，参加晋绥军区大反攻作战，先后解放三泉、柳林和离石等县城。<br />     <strong>从上述资料可看出，120师除了打击雁北力量相对薄弱的日军外，主要任务似应是机动和保卫中央的“后备队”，所以它的任务很复杂，人员变动也很频繁。要抗日、打顽、向北发展，还要支援吃紧处和开荒生产，故无太多精彩的战事。</strong><br /><strong><br />关于《亮剑》</strong><br />    《亮剑》的前半部分是描写抗日和解放战争中我军将领传奇的战事故事，自然归纳了多个英雄人物和多种精彩的战例，一些资料如下:<br />     作者都梁非常明确地说:李云龙是杜撰的一个人物，但是集合了若干中共将领的特点。政委赵刚确有原型，但不能随便说！<br />     肖全夫将军，原四方面军出身，后来属东北四野9纵26师师长，50任46军副军长，随后51年入朝作战，52年升任军长，54年也在南京军事学院战役系当学员，55年授少将，后任沈阳军区副司令员，69年珍宝岛之战的指挥人。这些都比较符合孔捷的一些经历。可能是孔捷的原型。   <br />     丁伟的原型就是钟伟。打仗野，纪律差，强自己部队的战利品，酿酒卖，卖烟土。当军事学员不听话，嫌军衔给低了，喜欢和女人跳舞等等。电视里面有个镜头描写淮海战场，李云龙师缴获了一堆战利品，结果被5师的人强走了，其实这个华野5师就是映射钟伟的，钟伟在东野就是5师的师长。  <br />    独立团在孔捷任团长之时遇袭原型，是说1937年10月，阳明堡打响，26日，日军40旅团5个大队右翼迂回到石门附近，发现129师386旅771团，进行夜袭，击溃了771团。   <br />     歼灭山崎大队原型，即关家垴之战，李家坡原型为关家垴，岗崎为山崎，时间，40年10月29日开始进攻，这场仗由25、38（决死一纵队）、772、 769团、总部特务团一部参加，385旅、新11旅、决死一纵余部打援，新10旅阻敌退路。最后由769团打下来的，由刘伯承发现一处可挖坑道，挖到了垴顶，最后将大部敌人歼灭，但是还是有60余人逃走。<br />     小说电视中都有提到过铡刀。期间有一架飞机被我军机枪打下。另外，此次战斗，陈庚旅第一批配置上了我军自己研制的步枪“八一式”。<br />     关家垴的伤亡很大，刘伯承、陈赓都希望能撤出战斗，不打这种消耗战，彭德怀很是生气，说如果不能歼灭敌人就撤销129师番号，并对陈赓说打不下来杀头。<br />     打平安县城的时候，小说电视里面都提到，有个主攻点，其他佯攻。李云龙说全TMD主攻，电视里面还对三营长说：“我一不给添人,二不给添枪,一字之变,要给我变出杀气来,要打出个精神头来”，这里的打法和台词都是取自济南战役时的聂凤智将军。<br />     济南战役的预期打发是，西线10纵宋时轮等部队为主攻，东线聂凤智的九纵为助攻，结果聂大笔一挥改“助攻”为“主攻”，并说“助攻’改‘主攻’，一不要增人，二不要添枪，一字之变，变的是精神状态”，电视里面的台词就取自这里。   <br />     38年3月份，卫立煌遭遇日军，被日军击败，日军通过追踪电台，一直追着卫部攻击，卫撤离到八路军115师防区请求协助，代师长陈光令686团阻击日军。686团团长杨勇派特务连阻敌日军800人于白儿岭，由方国南指挥，直至卫部安全撤出日军追踪范围。<br />电视中一开始，李云龙用迫击炮将敌指挥部炸掉，应该是从杨成武黄土领4炮干掉阿部规秀演化而来的。  <br />     电视中讲到李云龙率一营全歼一个日本军官观摩团。这件事情取自于王近山的事例。<br />42年的韩略村伏击战中,当时身为八路军新四旅旅长的王近山带领16团和一些干部去延安途中在临汾休息,接到太岳军区司令员陈庚急电，命其伏击在附近的这个观摩团。王部设伏于韩略，结果除三个藏身于公路下狼窝军官外，一个少将旅长，六个大佐联队长，180个中佐和少佐大队长以及中队长全部毙命。   <br />      38、39年时掩护八路军总部的团中就有王近山团，电视中，李云龙和赵刚谈话中，曾提到他率独立团被国军阻拦的事情，这个事例说得是杨成武的115师独立团的事情，当时国民党的编制中无八路军的独立团编制，杨只好和随后的李天佑的686团混合后渡了河，国军对这只编制不小的团挣一眼闭一眼就让他们过去了，毕竟都是去抗日的。杨成武后一举收复7座县城后，独立团发展很快，和电视剧里面攻平安县城时的兵力一样，都是7000人。   <br />电视中，扫荡后在赵家裕，李云龙、丁伟、孔捷三人喝酒聊天，丁伟讲到他们新一团突围的情景，比较像吕正操指挥的掌史突围战。<br />      吕部突围的策略很有意思，在白天遭遇的时候，吕正操规定部队作战只能用步枪和手枪，迫击炮和机枪一律不准使用，双方僵持住，使得日军以为八路没有其他武器，等到黄昏时，因为日军以为八路没有远距离攻击炮兵的能力而没有让炮兵隐藏踪迹，结果一下子就被八路把炮兵阵地给打趴了，然后八路的轻重机枪迫击炮啊一起发射，将日军打蒙，直到天黑日军都没能形成第二波攻势，趁着夜色，八路安全突围。   <br />     骑兵连。据作者都梁介绍是映射的江西一次战斗。<br />     淮海战场，李云龙率部迂回，遭遇同样担当迂回任务的国军。在48年11月14日，担当国军迂回任务的是在孟良崮遭全歼后又重新组建的74师，遭遇的是苏北兵团韦国清和吉洛指挥下的三个团。<br />      小说中，淮海战役期间，李云龙部战利品被抢，李云龙令人包围抢战利品的营，架起机枪，威胁谁敢动就突突了谁。取材于东野7纵邓华的事例。   <br />      淮海战场。电视中。李云龙为找出俘虏中的高级将领。令俘虏在院子中跑步，掉队的大多为长官。这个事例来自于钟伟。在东北战场，钟伟攻克文家台，抓获大批俘虏，就是用的这个方法找出了新5军军长陈林达。<br />     南京军事学院中的教官常乃超。原型为国军整11师师长王元直，淮海战场被俘。后在南京军事学院当教员，曾被钟伟当中奚落。55年授少校军衔。   <br />     南京军事学院。电视中丁伟擦皮鞋是所讲四野擦鞋之事说得是东野总参谋长刘亚楼。   <br />     李云龙医院结识田雨以及电视中田雨好友张白露插足于李田之间的感情纠葛都取材于王近山的事迹。王近山曾受伤入院，当时为386旅772团副团长，同时入院的还有385旅769团团长陈锡联。王近山喜欢医院的院花韩岫岩，在陈锡联的撮合下，两人结为夫妇。<br />     在60年代，王近山喜欢上了韩岫岩的妹妹要于韩岫岩离婚，惊动了中央，毛主席亲自批示刘少奇处理此事。如果王近山非要离婚就开除党籍、军籍，撤销一切职务，转地方安排。王近山不为所动。最后被剥夺一切。令人叹息的是，韩的妹妹无法承受这种压力，在指示下来之前就和王近山分手了。王近山以后至死也不愿意再看到韩妯岩。  <br />    长征中抢粮事件。在长征藏民区，抢粮的事情好像有很多。比较高级的将领纵兵抢粮就不是很清楚了，有人说是是赵勇夫。这个没有找到资料。  <br />    还有说李云龙是八路军129师386旅的771团团长徐深吉的。<br />    <strong>这部戏里面李云龙的原型不是一个人，总的来说，以王近山为主，钟伟为副，其他事迹中有皮定均、杨成武、聂凤智、邓华等中共将领的事迹，所以这些事迹也绝非仅发生在晋西北。<br />      为什么要设定“晋西北铁三角”这个战事不是最激烈的地域，却把许岁多晋中南的故事加进去?为什么明明在129师386旅的地盘发生的事，却都写成120师358旅地盘内呢? 我以为作者有如下考虑:<br />1.129师的班子一直未变，易刻划各级领导的性格。<br />2.晋西北大规模运动战少，区域明了，线索清晰。<br />3.敌对面简单，只需写战场的斗智斗勇，不牵扯政局的微妙变化。</strong><br />     总的来看，我认为《亮剑》是本不错的书，打破了几十年来的传统写法，特别是文革中的一段，基本用大白话说清了当时军民之间、军人之间那种复杂的关系。<br />     但《亮剑》写得很粗糙，电视剧拍得更粗糙，如能细细推敲几年，有个好导演来拍，当为一部可传世的作品，因为它必竟打开了一代沉寂，让我们多少感受到一些真正的历史是什么样子。<br />     扯得远了，先打住，请斧正为要。<br />                                        2007.5.31.
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/145752#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 04 Dec 2007 09:34:10 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/145752</link>
        <guid>http://heweiya.javaeye.com/blog/145752</guid>
      </item>
      <item>
        <title>优化hibernate的一招。</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/139401" style="color:red;">http://heweiya.javaeye.com/blog/139401</a>&nbsp;
          发表时间: 2007年11月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          原来的程序：<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>List&nbsp;Lrep&nbsp;=&nbsp;</span><span class="keyword">this</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getHibernateTemplate()&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.find(&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;from&nbsp;Productinfo&nbsp;as&nbsp;b&nbsp;where&nbsp;b.productSpec='&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;spec[<span class="number">0</span><span>].toString()&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;<span class="string">&quot;'&nbsp;order&nbsp;by&nbsp;b.id&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(Lrep&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;j&nbsp;=&nbsp;</span><span class="number">0</span><span>;&nbsp;j&nbsp;&lt;&nbsp;repeat+</span><span class="number">1</span><span>;&nbsp;j++)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Productinfo&nbsp;info&nbsp;=&nbsp;(Productinfo)&nbsp;Lrep.get(j);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;如果有重复的产品型号，命名规则是：</span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(j&nbsp;&gt;&nbsp;</span><span class="number">0</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(info.getProductSpec().equals(</span><span class="string">&quot;*&quot;</span><span>)||info.getProductSpec().equals(</span><span class="string">&quot;-&quot;</span><span>)){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="string">&quot;update&nbsp;productinfo&nbsp;set&nbsp;LinkSpecFix='echo-&quot;</span><span>+info.getId()+&nbsp;</span><span class="string">&quot;'&nbsp;where&nbsp;id=&quot;</span><span>+info.getId()+</span><span class="string">&quot;;--&quot;</span><span>+info.getProductSpec());&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span class="keyword">else</span><span>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="string">&quot;update&nbsp;productinfo&nbsp;set&nbsp;LinkSpecFix='&quot;</span><span>+info.getProductSpec()+&nbsp;</span><span class="string">&quot;-echo&quot;</span><span>&nbsp;+&nbsp;j+</span><span class="string">&quot;'&nbsp;where&nbsp;id=&quot;</span><span>+info.getId()+</span><span class="string">&quot;;--&quot;</span><span>+info.getProductSpec()+</span><span class="string">&quot;--数&quot;</span><span>+i);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
</ol>
</div>
呵呵。这是一个检查重复的产品型号的SQL，其中语法第4行：<span><span class="string">from&nbsp;Productinfo&nbsp;as&nbsp;b&nbsp;where&nbsp;b.productSpec....当中　&ldquo;</span></span><span><span class="string">from&nbsp;Productinfo&nbsp;as&nbsp;b </span></span><span><span class="string">&rdquo;是一个很浪费内存的东东。<br />
其中语法第9行：</span></span><span>Productinfo&nbsp;info&nbsp;=&nbsp;(Productinfo)&nbsp;Lrep.get(j);也是一个很浪费内存的东东。<br />
我的修改建议是：只把有用的字段取出来就行了，不需要兴师动众。真正有用的字段是：</span><strong><span><span>info.getId()<br />
修改方法如下：<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>List&nbsp;Lrep&nbsp;=&nbsp;</span><span class="keyword">this</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getHibernateTemplate()&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.find(&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;select&nbsp;b.id&nbsp;from&nbsp;Productinfo&nbsp;as&nbsp;b&nbsp;where&nbsp;b.productSpec='&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;spec[<span class="number">0</span><span>].toString()&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;<span class="string">&quot;'&nbsp;order&nbsp;by&nbsp;b.id&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(Lrep&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;j&nbsp;=&nbsp;</span><span class="number">0</span><span>;&nbsp;j&nbsp;&lt;&nbsp;repeat+</span><span class="number">1</span><span>;&nbsp;j++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;proid&nbsp;=&nbsp;Lrep.get(j).toString();<span class="comment">//加快SQL检索&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;如果有重复的产品型号，命名规则是：</span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(j&nbsp;&gt;&nbsp;</span><span class="number">0</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(spec[</span><span class="number">0</span><span>].toString().equals(</span><span class="string">&quot;*&quot;</span><span>)||spec[</span><span class="number">0</span><span>].toString().equals(</span><span class="string">&quot;-&quot;</span><span>)){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="string">&quot;update&nbsp;productinfo&nbsp;set&nbsp;LinkSpecFix='echo-&quot;</span><span>+proid+&nbsp;</span><span class="string">&quot;'&nbsp;where&nbsp;id=&quot;</span><span>+proid+</span><span class="string">&quot;;--&quot;</span><span>+spec[</span><span class="number">0</span><span>].toString());&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span class="keyword">else</span><span>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="string">&quot;update&nbsp;productinfo&nbsp;set&nbsp;LinkSpecFix='&quot;</span><span>+spec[</span><span class="number">0</span><span>].toString()+&nbsp;</span><span class="string">&quot;-echo&quot;</span><span>&nbsp;+&nbsp;j+</span><span class="string">&quot;'&nbsp;where&nbsp;id=&quot;</span><span>+proid+</span><span class="string">&quot;;--&quot;</span><span>+spec[</span><span class="number">0</span><span>].toString()+</span><span class="string">&quot;--数&quot;</span><span>+i);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
</ol>
</div>
</span></span></strong><span><span>其中：</span></span><span><span><span>String&nbsp;proid&nbsp;=&nbsp;Lrep.get(j).toString();<span class="comment">能够加快读取好多倍，也省了很多内存的读写，以后把这个做为一个习惯就好了。一定要优化这类的编码呀！</span></span></span></span>
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/139401#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/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 09 Nov 2007 10:20:07 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/139401</link>
        <guid>http://heweiya.javaeye.com/blog/139401</guid>
      </item>
      <item>
        <title>自制行业搜索引擎</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/135030" style="color:red;">http://heweiya.javaeye.com/blog/135030</a>&nbsp;
          发表时间: 2007年10月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp; 呵呵，这一段时间尽在瞎鼓捣一些东西，看看结果吧：<a href="http://www.1718zx.cn">仪器仪表搜索</a><br />
&nbsp;&nbsp;&nbsp;&nbsp; 这个引擎的基本制作思路如下：<br />
１）、利用爬虫抓取指定数据到数据库。使用爬虫的机制找到包含有所需信息的指定网页，一般都比较有规律，但是各个网站的规则不同。比如：<a href="http://www.china-meter.com">中国仪器仪表国际网</a>&nbsp;&nbsp; 其规则是：disp.asp?id=xx,还有：<a href="http://www.8to888.com/">金泰阳仪器仪表采购网</a>，其规则是：cp.asp?id=xx,所以要分别对待，其内容也要分别处理。可以看看中国仪器仪表国际网的抓取代码片段：（关键是规则）<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j">
    <li class="alt"><span><span>BufferedReader&nbsp;in&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;BufferedReader(</span><span class="keyword">new</span><span>&nbsp;InputStreamReader(connection&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInputStream(),&nbsp;charset));&nbsp;<span class="comment">//&nbsp;使用指定编码接收数据</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Productinfo&nbsp;info&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;Productinfo();&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line&nbsp;=&nbsp;<span class="keyword">null</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;LoveIt&nbsp;=&nbsp;<span class="string">&quot;&quot;</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;pix&nbsp;=&nbsp;<span class="string">&quot;&quot;</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;</span><span class="number">0</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Manufacturer&nbsp;M&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;Manufacturer();&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">while</span><span>&nbsp;((line&nbsp;=&nbsp;in.readLine())&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(line.indexOf(pix)&nbsp;&gt;&nbsp;</span><span class="number">0</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**</span>&nbsp;</span> </li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;把这一行抽出来呀！！，历史任务！</span>&nbsp;</span> </li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(i&nbsp;==&nbsp;</span><span class="number">1</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;BeginIt&nbsp;=&nbsp;line.indexOf(pix);&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;EndinIt&nbsp;=&nbsp;line.indexOf(</span><span class="string">&quot;&quot;</span><span>,&nbsp;BeginIt);&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoveIt&nbsp;=&nbsp;line.substring(BeginIt&nbsp;+&nbsp;pix.length(),&nbsp;EndinIt);&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M.setManufacturerName(LoveIt);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;break;</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(LoveIt.length()&nbsp;&gt;&nbsp;</span><span class="number">5</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">continue</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(i&nbsp;==&nbsp;</span><span class="number">2</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;BeginIt&nbsp;=&nbsp;line.indexOf(pix);&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;EndinIt&nbsp;=&nbsp;line.indexOf(</span><span class="string">&quot;&quot;</span><span>,&nbsp;BeginIt);&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoveIt&nbsp;=&nbsp;line.substring(BeginIt&nbsp;+&nbsp;pix.length(),&nbsp;EndinIt);&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info.setProductName(LoveIt);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(LoveIt.length()&nbsp;&gt;&nbsp;</span><span class="number">5</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">continue</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(i&nbsp;==&nbsp;</span><span class="number">3</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;BeginIt&nbsp;=&nbsp;line.indexOf(pix);&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;EndinIt&nbsp;=&nbsp;line.indexOf(</span><span class="string">&quot;&quot;</span><span>,&nbsp;BeginIt);&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoveIt&nbsp;=&nbsp;line.substring(BeginIt&nbsp;+&nbsp;pix.length(),&nbsp;EndinIt);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info.setProductSpec(LoveIt);&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(LoveIt.length()&nbsp;&gt;&nbsp;</span><span class="number">5</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">continue</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ImageUrl&nbsp;=&nbsp;Url.replace(<span class="string">&quot;disp.asp&quot;</span><span>,&nbsp;</span><span class="string">&quot;showing.asp&quot;</span><span>);&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info.setFirstPic(<span class="string">&quot;http://www.china-meter.com/btob/backmanage/&quot;</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;ImageUrl);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(i&nbsp;==&nbsp;</span><span class="number">5</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;BeginIt3&nbsp;=&nbsp;line.indexOf(pix);&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;EndinIt3&nbsp;=&nbsp;line.indexOf(</span><span class="string">&quot;&quot;</span><span>,&nbsp;BeginIt3);&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(EndinIt3&nbsp;==&nbsp;-</span><span class="number">1</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;=&nbsp;in.readLine();&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EndinIt3&nbsp;=&nbsp;line.indexOf(<span class="string">&quot;&quot;</span><span>,&nbsp;BeginIt3);&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoveIt&nbsp;=&nbsp;line;&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(LoveIt.length()&nbsp;==&nbsp;</span><span class="number">0</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoveIt&nbsp;=&nbsp;line.substring(BeginIt3&nbsp;+&nbsp;pix.length(),&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EndinIt3);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info.setProductDesc(LoveIt);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(LoveIt.length()&nbsp;&gt;&nbsp;</span><span class="number">5</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">continue</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(i&nbsp;==&nbsp;</span><span class="number">8</span><span>)&nbsp;{&nbsp;</span><span class="comment">//&nbsp;厂商地址</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;BeginIt4&nbsp;=&nbsp;line.indexOf(pix);&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;EndinIt4&nbsp;=&nbsp;line.indexOf(</span><span class="string">&quot;&quot;</span><span>,&nbsp;BeginIt4);&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoveIt&nbsp;=&nbsp;line.substring(BeginIt4&nbsp;+&nbsp;pix.length(),&nbsp;EndinIt4);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M.setAddress(LoveIt);&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(LoveIt.length()&nbsp;&gt;&nbsp;</span><span class="number">5</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">continue</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(i&nbsp;==&nbsp;</span><span class="number">9</span><span>)&nbsp;{&nbsp;</span><span class="comment">//&nbsp;厂商电话</span><span>&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;BeginIt4&nbsp;=&nbsp;line.indexOf(pix);&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">int</span><span>&nbsp;EndinIt4&nbsp;=&nbsp;line.indexOf(</span><span class="string">&quot;&quot;</span><span>,&nbsp;BeginIt4);&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LoveIt&nbsp;=&nbsp;line.substring(BeginIt4&nbsp;+&nbsp;pix.length(),&nbsp;EndinIt4);&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M.setTel(LoveIt);&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(LoveIt.length()&nbsp;&gt;&nbsp;</span><span class="number">5</span><span>)&nbsp;{&nbsp;&nbsp;</span></span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">continue</span><span>;&nbsp;&nbsp;</span></span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span> </li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();&nbsp;&nbsp;</span> </li>
</ol>
</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 呵呵，可能运行不到10分钟就会抓取他们近万条的产品，是不是很拽呀，看了我的程序，你会发现哪些所谓的网站录入员的工作都是无用功。我利用这种技术已经在近1个月之内利用课余时间抓取到10万多条记录（当然有用的有效的记录只有2、3万条），<br />
2）、建立索引，放在指定目录。<br />
3）、建立搜索，并自定义分词技术、排序和高亮的规则，然后进行查询。<br />
其中，建立索引已经改造，搜索的排序算法和竞价还在开发当中。搜索不够准确也是迫在眉睫的事。<br />
如果大家有什么好的建议可以互相交流。
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/135030#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 24 Oct 2007 10:46:47 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/135030</link>
        <guid>http://heweiya.javaeye.com/blog/135030</guid>
      </item>
      <item>
        <title>使用spring+hibernate集成compass的一个错误！</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/128233" style="color:red;">http://heweiya.javaeye.com/blog/128233</a>&nbsp;
          发表时间: 2007年09月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          请参考http://www.springside.org.cn/docs/reference/Compass1.htm上面的文章做的时候，遇到如下的问题：<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>java.lang.NoSuchMethodError:&nbsp;org.apache.lucene.document.Field.&lt;init&gt;(Ljava/lang/String;Ljava/lang/String;Lorg/apache/lucene/document/Field$Store;Lorg/apache/lucene/document/Field$Index;)V&nbsp;&nbsp;</span></span></li>
</ol>
</div>
于是从google上进行查询，在网页上：http://jira.atlassian.com/browse/BAM-506看到如下的提示：<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>Jari,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>We've&nbsp;rewritten&nbsp;quite&nbsp;a&nbsp;bit&nbsp;of&nbsp;code&nbsp;around&nbsp;the&nbsp;building&nbsp;area&nbsp;<span class="keyword">for</span><span>&nbsp;</span><span class="number">0.8</span><span>.&nbsp;We're&nbsp;going&nbsp;to&nbsp;be&nbsp;releasing&nbsp;</span><span class="number">0.8</span><span>&nbsp;sometime&nbsp;today&nbsp;or&nbsp;tomorrow&nbsp;morning.&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>It'd&nbsp;be&nbsp;great&nbsp;<span class="keyword">if</span><span>&nbsp;you&nbsp;could&nbsp;give&nbsp;that&nbsp;a&nbsp;</span><span class="keyword">try</span><span>&nbsp;and&nbsp;let&nbsp;us&nbsp;know&nbsp;</span><span class="keyword">if</span><span>&nbsp;the&nbsp;problem&nbsp;is&nbsp;still&nbsp;there.&nbsp;If&nbsp;it&nbsp;is,&nbsp;please&nbsp;attach&nbsp;your&nbsp;atlassian-bamboo.log&nbsp;file&nbsp;and&nbsp;we'll&nbsp;</span><span class="keyword">try</span><span>&nbsp;to&nbsp;track&nbsp;down&nbsp;the&nbsp;problem&nbsp;further.&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Cheers,&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Mark&nbsp;C&nbsp;&nbsp;</span></li>
</ol>
</div>
还有：<br />
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>Jari,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Thanks&nbsp;<span class="keyword">for</span><span>&nbsp;the&nbsp;extra&nbsp;info.&nbsp;We&nbsp;might&nbsp;</span><span class="keyword">try</span><span>&nbsp;to&nbsp;detect&nbsp;the&nbsp;version&nbsp;of&nbsp;Lucene&nbsp;to&nbsp;make&nbsp;sure&nbsp;things&nbsp;are&nbsp;working&nbsp;correctly.&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;otherwise&nbsp;it&nbsp;will&nbsp;block&nbsp;the&nbsp;build&nbsp;queue&nbsp;indefinitely&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Do&nbsp;the&nbsp;queues&nbsp;still&nbsp;block&nbsp;indefinitely?&nbsp;The&nbsp;expected&nbsp;behaviour&nbsp;<span class="keyword">for</span><span>&nbsp;</span><span class="number">0.8</span><span>&nbsp;should&nbsp;be&nbsp;that&nbsp;the&nbsp;build&nbsp;is&nbsp;marked&nbsp;as&nbsp;failed&nbsp;(since&nbsp;it&nbsp;threw&nbsp;an&nbsp;unexpected&nbsp;exception)&nbsp;but&nbsp;the&nbsp;queues&nbsp;should&nbsp;not&nbsp;be&nbsp;blocked&nbsp;(as&nbsp;in&nbsp;you&nbsp;should&nbsp;be&nbsp;able&nbsp;to&nbsp;run&nbsp;</span><span class="keyword">new</span><span>&nbsp;builds).&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>As&nbsp;you&nbsp;alluded&nbsp;to,&nbsp;failure&nbsp;during&nbsp;the&nbsp;indexing&nbsp;phase&nbsp;should&nbsp;probably&nbsp;not&nbsp;be&nbsp;treated&nbsp;as&nbsp;a&nbsp;build&nbsp;failure&nbsp;(but&nbsp;should&nbsp;still&nbsp;log).&nbsp;It&nbsp;does,&nbsp;however,&nbsp;mean&nbsp;that&nbsp;certain&nbsp;stats&nbsp;and&nbsp;graphs&nbsp;may&nbsp;be&nbsp;corrupted.&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Cheers,&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Mark&nbsp;C&nbsp;&nbsp;</span></li>
    <li class=""><span>[&nbsp;Show&nbsp;&raquo;&nbsp;]&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Mark&nbsp;Chaimungkalanont&nbsp;[Atlassian]&nbsp;-&nbsp;<span class="number">12</span><span>/Dec/</span><span class="number">06</span><span>&nbsp;</span><span class="number">05</span><span>:</span><span class="number">18</span><span>&nbsp;PM&nbsp;Jari,&nbsp;Thanks&nbsp;</span><span class="keyword">for</span><span>&nbsp;the&nbsp;extra&nbsp;info.&nbsp;We&nbsp;might&nbsp;</span><span class="keyword">try</span><span>&nbsp;to&nbsp;detect&nbsp;the&nbsp;version&nbsp;of&nbsp;Lucene&nbsp;to&nbsp;make&nbsp;sure&nbsp;things&nbsp;are&nbsp;working&nbsp;correctly.&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;otherwise&nbsp;it&nbsp;will&nbsp;block&nbsp;the&nbsp;build&nbsp;queue&nbsp;indefinitely&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Do&nbsp;the&nbsp;queues&nbsp;still&nbsp;block&nbsp;indefinitely?&nbsp;The&nbsp;expected&nbsp;behaviour&nbsp;<span class="keyword">for</span><span>&nbsp;</span><span class="number">0.8</span><span>&nbsp;should&nbsp;be&nbsp;that&nbsp;the&nbsp;build&nbsp;is&nbsp;marked&nbsp;as&nbsp;failed&nbsp;(since&nbsp;it&nbsp;threw&nbsp;an&nbsp;unexpected&nbsp;exception)&nbsp;but&nbsp;the&nbsp;queues&nbsp;should&nbsp;not&nbsp;be&nbsp;blocked&nbsp;(as&nbsp;in&nbsp;you&nbsp;should&nbsp;be&nbsp;able&nbsp;to&nbsp;run&nbsp;</span><span class="keyword">new</span><span>&nbsp;builds).&nbsp;As&nbsp;you&nbsp;alluded&nbsp;to,&nbsp;failure&nbsp;during&nbsp;the&nbsp;indexing&nbsp;phase&nbsp;should&nbsp;probably&nbsp;not&nbsp;be&nbsp;treated&nbsp;as&nbsp;a&nbsp;build&nbsp;failure&nbsp;(but&nbsp;should&nbsp;still&nbsp;log).&nbsp;It&nbsp;does,&nbsp;however,&nbsp;mean&nbsp;that&nbsp;certain&nbsp;stats&nbsp;and&nbsp;graphs&nbsp;may&nbsp;be&nbsp;corrupted.&nbsp;Cheers,&nbsp;Mark&nbsp;C&nbsp;&nbsp;</span></span></li>
</ol>
</div>
才知道自己发布的应用当上的版本有冲突，其实就是lucene-core包的问题。<br />
我使用的开发环境是spring 1.2和hiberante3.1，可能hiberante当中自己带lucene-core-1.4.3吧，所以导致这个错误，折腾了我一天，做技术就是这样，把自己搞的精疲力尽时才发现这是一个多么小的错误。<br />
希望大家共勉.
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/128233#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/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Sep 2007 15:44:37 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/128233</link>
        <guid>http://heweiya.javaeye.com/blog/128233</guid>
      </item>
      <item>
        <title>Jabber让我想像出聊天机器人</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/115609" style="color:red;">http://heweiya.javaeye.com/blog/115609</a>&nbsp;
          发表时间: 2007年08月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开源的协议xmpp让我插上梦想的翅膀，我在想做一个聊天机器人，而且国内现在做这个的好象还没有.我的想法是支持xmpp的协议的任何服务器都可以支持（理论上），然后做一些分布式的商务聊天机器人，可以对一些网站的销售和电子商务起到无人值守的作用.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 还有其在移动设备终端的即时响应.<br />
重点是如何建立规则，也就是一问一答制，并且能够快速的反应.我的初步设想是有一些学习功能，也就是收集一些常用的问答语言保存到xml文件当中，在合适的时候调出来.<br />
根据个性不同，可以分出例如，北北　京京　欢欢　迎迎　你你.<br />
最关键的是利用jabber服务器侦听一些用户的信息，然后有得放失的给指定客户投放广告，这将是真正的赢利模式.也是最有效的.
          <br/>
          <span style="color:red;">
            <a href="http://heweiya.javaeye.com/blog/115609#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 23 Aug 2007 11:19:23 +0800</pubDate>
        <link>http://heweiya.javaeye.com/blog/115609</link>
        <guid>http://heweiya.javaeye.com/blog/115609</guid>
      </item>
      <item>
        <title>给你的网站增加RSS功能</title>
        <author>heweiya</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://heweiya.javaeye.com">heweiya</a>&nbsp;
          链接：<a href="http://heweiya.javaeye.com/blog/114913" style="color:red;">http://heweiya.javaeye.com/blog/114913</a>&nbsp;
          发表时间: 2007年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp; 呵呵,其实RSS很简单.因为他的代码量实在是不大,而且很容易理解,<br />
&nbsp;&nbsp;&nbsp; 我经过反复的筛选和使用,认为使用rome是目前比较简捷而且高效的生成RSS的好工具.而我以前是使用freemarker来生成rss,但是生成的rss不标准,本文主要是实践为主,列举出实际代码.<br />
&nbsp;&nbsp;&nbsp; 首先下载最新的rome版本,[url=https://rome.dev.java.net/source/browse/*checkout*/rome/www/dist//rome-0.9.zip]rome0.9下载地址[/url]<br />
&nbsp;&nbsp;&nbsp; 然后把rome-0.9.jar放在你的web-inf/lib下面.<br />
&nbsp;&nbsp;&nbsp; 开始写代码了&gt;<br />
&nbsp;&nbsp;&nbsp;
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;ActionForward&nbsp;RssPut(ActionMapping&nbsp;mapping,&nbsp;ActionForm&nbsp;form,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;产生二级分类</span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;Guangao&nbsp;=&nbsp;<span class="string">&quot;&lt;br&gt;&quot;</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateFormat&nbsp;DATE_PARSER&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;SimpleDateFormat(</span><span class="string">&quot;yyyy-MM-dd&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;生成静态页面</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServletContext&nbsp;servletContext&nbsp;=&nbsp;servlet.getServletContext();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;realPath&nbsp;=&nbsp;servletContext.getRealPath(<span class="string">&quot;/&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;ProductType1&nbsp;=&nbsp;productDAO.getProductTreeLayer(<span class="string">&quot;0&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;ProductType2&nbsp;=&nbsp;productDAO.getProductTreeLayer(<span class="string">&quot;1&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;ProductType3&nbsp;=&nbsp;productDAO.getProductTreeLayer(<span class="string">&quot;2&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;生成首页</span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;path&nbsp;=&nbsp;realPath&nbsp;+&nbsp;<span class="string">&quot;AntBeeRss/&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;fileName&nbsp;=&nbsp;<span class="string">&quot;&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/**</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;从这里开始循环，产品名称的ID来</span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;</span><span class="number">0</span><span>;&nbsp;i&nbsp;&lt;&nbsp;ProductType2.size();&nbsp;i++)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Product&nbsp;product&nbsp;=&nbsp;(Product)&nbsp;ProductType2.get(i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;newsDir&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;File(path);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(newsDir.exists())&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileName&nbsp;=&nbsp;path&nbsp;+&nbsp;<span class="string">&quot;/AntBeeRss_&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;product.getTypeDir().toString()&nbsp;+&nbsp;<span class="string">&quot;.xml&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newsDir.mkdirs();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileName&nbsp;=&nbsp;path&nbsp;+&nbsp;<span class="string">&quot;/AntBeeRss_&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;product.getTypeDir().toString()&nbsp;+&nbsp;<span class="string">&quot;.xml&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SyndFeed&nbsp;feed&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;SyndFeedImpl();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setFeedType(<span class="string">&quot;rss_2.0&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setTitle(product.getSonName()&nbsp;+&nbsp;<span class="string">&quot;大全,报价,功能描述&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setAuthor(<span class="string">&quot;AntBee&nbsp;Tech&nbsp;Corp.&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setCopyright(<span class="string">&quot;Copyright&nbsp;2007-2008,&nbsp;AntBee&nbsp;Tech&nbsp;Corp.&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setLink(<span class="string">&quot;http://www.1718zx.cn&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setDescription(<span class="string">&quot;AntBee&nbsp;Tech&nbsp;Corp.&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setEncoding(<span class="string">&quot;GBK&quot;</span><span>);</span><span class="comment">//使用GBK,否则zhuaxia和google都不认识。</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;feed.setLanguage(<span class="string">&quot;GBK&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;entries&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;ArrayList();&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;product2&nbsp;=&nbsp;productInfoDAO.getProductinfo2(product.getId()&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.toString());&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(product2&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;j&nbsp;=&nbsp;</span><span class="number">0</span><span>;&nbsp;j&nbsp;&lt;&nbsp;product2.size();&nbsp;j++)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Productinfo&nbsp;info&nbsp;=&nbsp;(Productinfo)&nbsp;product2.get(j);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SyndEntry&nbsp;entry;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SyndContent&nbsp;description;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;SyndEntryImpl();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;manufacturer&nbsp;=&nbsp;(info.getManufacturer()&nbsp;==&nbsp;<span class="keyword">null</span><span>)&nbsp;?&nbsp;</span><span class="string">&quot;&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;info.getManufacturer().getManufacturerName();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry.setTitle(info.getProductName()&nbsp;+&nbsp;<span class="string">&quot;,型号：&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;info.getProductSpec()&nbsp;+&nbsp;<span class="string">&quot;,厂商：&quot;</span><span>&nbsp;+&nbsp;manufacturer);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry.setLink(<span class="string">&quot;http://www.1718zx.cn/Product/&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;info.getProductSpec()&nbsp;+&nbsp;<span class="string">&quot;.html&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry.setPublishedDate(<span class="keyword">new</span><span>&nbsp;Date());&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;SyndContentImpl();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description.setType(<span class="string">&quot;text/plain&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description.setValue(info.getProductDesc()&nbsp;+&nbsp;Guangao);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry.setDescription(description);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entries.add(entry);&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">try</span><span>{&nbsp;&nbsp;</span></sp