﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-勤加练习，必能得心应手！不期速成，日拱一卒 ！-随笔分类-J2EE</title><link>http://www.blogjava.net/ldwblog/category/45966.html</link><description>态度决定一切</description><language>zh-cn</language><lastBuildDate>Tue, 07 Jan 2020 10:50:09 GMT</lastBuildDate><pubDate>Tue, 07 Jan 2020 10:50:09 GMT</pubDate><ttl>60</ttl><item><title>个人公众号「Java爱好者社区」高质量原创文章持续输出，欢迎各位小主关注</title><link>http://www.blogjava.net/ldwblog/archive/2019/10/30/434887.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Wed, 30 Oct 2019 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2019/10/30/434887.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/434887.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2019/10/30/434887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/434887.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/434887.html</trackback:ping><description><![CDATA[blogjava网站与博客园合并了，对blogjava还是有感情的。<br />并且blogjava网站发布的文章是在博客园首页看不到的。<br />blogjava网站首页能看到，你可以点击标题进入可以看到图片二维码信息。<br /><br /><strong style="color: red; font-size: 14pt;">Java爱好者社区</strong><br />公众号内容简介：<br /><p><span style="background-color: yellow; color: red;">专注于分享Java后端相关技术、老司机实战干货，不限于JVM、并发、设计模式、性能优化、分布式&amp;微服务、云原生、大数据相关主题。</span><br style="color: red;" /><span style="background-color: yellow; color: red;">希望关注的你停下脚步，定有所收获。</span><br style="color: red;" /><br />以前的个人博客内容不好迁移，所以我打算根据自己的多年经验，不断整理输出有价值的内容。<br />目前公众号内容有关于<span style="background-color: yellow; color: red;">SpringCloud（微服务框架）、Skywalking（APM监控调用链）、JVM（GC分析、内存泄漏分析）、并发编程</span>相关原创实战文章已出炉。<br /><br />最近刚开始已经有不少小伙伴关注了，期待能有幸搜索到本博客的同学，可以扫码关注一下，不胜感激。<br />大家有任何技术、职场、面试上的问题都可以与我交流。<br /><br /><span style="background-color: yellow;"><strong>方式一：</strong></span><span style="color: red; background-color: yellow;"><strong>扫码以下公众号二维码：</strong></span><br /><img src="http://www.blogjava.net/images/blogjava_net/ldwblog/Java%E7%88%B1%E5%A5%BD%E8%80%85%E7%A4%BE%E5%8C%BA%E4%BA%8C%E7%BB%B4%E7%A0%81.png" border="0" alt="" /><br /><br />方式二：<span style="color: red;">在微信上直接搜索：&nbsp;</span><span style="color: red; background-color: yellow;">javatech_cbo</span><br /><br />感谢各位小伙伴的支持，后续会在该公众号上输出大量的有价值的实战干货 ，期待与你一同进步与成长。<br /></p><img src ="http://www.blogjava.net/ldwblog/aggbug/434887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2019-10-30 14:10 <a href="http://www.blogjava.net/ldwblog/archive/2019/10/30/434887.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Elasticsearch服务重启故障解决过程</title><link>http://www.blogjava.net/ldwblog/archive/2017/07/24/432681.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Mon, 24 Jul 2017 11:10:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2017/07/24/432681.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/432681.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2017/07/24/432681.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/432681.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/432681.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/ldwblog/archive/2017/07/24/432681.html'>阅读全文</a><img src ="http://www.blogjava.net/ldwblog/aggbug/432681.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2017-07-24 19:10 <a href="http://www.blogjava.net/ldwblog/archive/2017/07/24/432681.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA应用CPU占用100%|内存泄漏分析总结</title><link>http://www.blogjava.net/ldwblog/archive/2016/12/22/432166.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Thu, 22 Dec 2016 15:01:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2016/12/22/432166.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/432166.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2016/12/22/432166.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/432166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/432166.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/ldwblog/archive/2016/12/22/432166.html'>阅读全文</a><img src ="http://www.blogjava.net/ldwblog/aggbug/432166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2016-12-22 23:01 <a href="http://www.blogjava.net/ldwblog/archive/2016/12/22/432166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CPU利用率100%定位过程</title><link>http://www.blogjava.net/ldwblog/archive/2016/11/04/431955.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Fri, 04 Nov 2016 15:44:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2016/11/04/431955.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/431955.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2016/11/04/431955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/431955.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/431955.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/ldwblog/archive/2016/11/04/431955.html'>阅读全文</a><img src ="http://www.blogjava.net/ldwblog/aggbug/431955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2016-11-04 23:44 <a href="http://www.blogjava.net/ldwblog/archive/2016/11/04/431955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转] JVM调优总结 + jstat 分析</title><link>http://www.blogjava.net/ldwblog/archive/2016/01/03/428906.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Sun, 03 Jan 2016 15:26:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2016/01/03/428906.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/428906.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2016/01/03/428906.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/428906.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/428906.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JVM调优总结 + jstat 分析jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒输出结果不断的在屏幕打印出结果&nbsp;&nbsp;S0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/ldwblog/archive/2016/01/03/428906.html'>阅读全文</a><img src ="http://www.blogjava.net/ldwblog/aggbug/428906.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2016-01-03 23:26 <a href="http://www.blogjava.net/ldwblog/archive/2016/01/03/428906.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Thrift RPC框架介绍</title><link>http://www.blogjava.net/ldwblog/archive/2014/12/03/421011.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Wed, 03 Dec 2014 15:56:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2014/12/03/421011.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/421011.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2014/12/03/421011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/421011.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/421011.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/ldwblog/archive/2014/12/03/421011.html'>阅读全文</a><img src ="http://www.blogjava.net/ldwblog/aggbug/421011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2014-12-03 23:56 <a href="http://www.blogjava.net/ldwblog/archive/2014/12/03/421011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2漏洞版本升级过程</title><link>http://www.blogjava.net/ldwblog/archive/2013/10/14/404944.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Mon, 14 Oct 2013 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2013/10/14/404944.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/404944.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2013/10/14/404944.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/404944.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/404944.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/ldwblog/archive/2013/10/14/404944.html'>阅读全文</a><img src ="http://www.blogjava.net/ldwblog/aggbug/404944.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2013-10-14 09:50 <a href="http://www.blogjava.net/ldwblog/archive/2013/10/14/404944.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>目标对象没有实现任何接口，Spring使用CGLIB库生成目标对象的子类</title><link>http://www.blogjava.net/ldwblog/archive/2013/03/05/396081.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Tue, 05 Mar 2013 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2013/03/05/396081.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/396081.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2013/03/05/396081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/396081.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/396081.html</trackback:ping><description><![CDATA[项目组内一位同事，在重构代码过程中将几个模块的Service层接口去掉后. 修改成了没有实现任何接口的类，并且继承了一个抽象基类。<br />然后我更新代码后执行系统中的该模块，发现部分表数据没有完整持久到数据库中。看了下代码和spring配置文件，原来调整后的Biz的业务类没有配置事务导致的。<br /><div>修改了下spring配置文件（beanNames绑定了*Biz）:</div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp; &nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation="http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">=&nbsp;"propertyConfigurer"</span><span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"com.ccms.base.util.DecryptPropertyPlaceholderConfigurer"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">&gt;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="locations"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">=&nbsp;"classpath:sysConfig.properties"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&lt;bean&nbsp;id="dataSource"&nbsp;class="org.apache.commons.dbcp.BasicDataSource"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy-method="close"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="driverClassName"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="url"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${dataSource.jdbcUrl}&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="username"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${dataSource.userName}&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="password"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;${dataSource.password}&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="maxActive"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;100&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="initialSize"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;5&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="maxIdle"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;10&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="minIdle"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;0&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="maxWait"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;-1&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="defaultAutoCommit"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;false&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="testOnBorrow"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;true&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="testWhileIdle"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;true&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="timeBetweenEvictionRunsMillis"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;600000&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="numTestsPerEvictionRun"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;20&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;property&nbsp;name="minEvictableIdleTimeMillis"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;3600000&lt;/value&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/property&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bean&gt;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="dataSource"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.mchange.v2.c3p0.ComboPooledDataSource"</span><span style="color: #FF0000; ">&nbsp;destroy-method</span><span style="color: #0000FF; ">="close"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="driverClass"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="com.mysql.jdbc.Driver"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="jdbcUrl"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="${dataSource.jdbcUrl}&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="${dataSource.userName}"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="password"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="${dataSource.password}"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="minPoolSize"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="5"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="maxPoolSize"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="50"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="maxStatements"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="0"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="idleConnectionTestPeriod"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="60"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="acquireRetryAttempts"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="3"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;Session&nbsp;Factory&nbsp;</span><span style="color: #008000; ">--&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="sessionFactory"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.orm.hibernate3.LocalSessionFactoryBean"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="dataSource"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">ref&nbsp;</span><span style="color: #FF0000; ">local</span><span style="color: #0000FF; ">="dataSource"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;hbm配置文件的classPath路径&nbsp;</span><span style="color: #008000; ">--&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="mappingDirectoryLocations"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span>classpath:/com/ccms/base/mapping<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="hibernateProperties"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">props</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.dialect"</span><span style="color: #0000FF; ">&gt;</span>org.hibernate.dialect.MySQLDialect<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.show_sql"</span><span style="color: #0000FF; ">&gt;</span>true<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.generate_statistics"</span><span style="color: #0000FF; ">&gt;</span>true<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.connection.release_mode"</span><span style="color: #0000FF; ">&gt;</span>auto<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.autoReconnect"</span><span style="color: #0000FF; ">&gt;</span>true<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span>&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="hibernate.connection.autocommit"</span><span style="color: #0000FF; ">&gt;</span>false<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;&lt;prop&nbsp;key="hibernate.query.factory_class"&gt;org.hibernate.hql.ast.ASTQueryTranslatorFactory&lt;/prop&gt;&nbsp;</span><span style="color: #008000; ">--&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">props</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="myTransactionManager"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.orm.hibernate3.HibernateTransactionManager"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="sessionFactory"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">ref&nbsp;</span><span style="color: #FF0000; ">bean</span><span style="color: #0000FF; ">="sessionFactory"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span>&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="transactionInterceptor"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.transaction.interceptor.TransactionInterceptor"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="transactionManager"</span><span style="color: #FF0000; ">&nbsp;ref</span><span style="color: #0000FF; ">="myTransactionManager"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="transactionAttributes"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">props</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">prop&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="*"</span><span style="color: #0000FF; ">&gt;</span>PROPAGATION_REQUIRED,-Exception<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">prop</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">props</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;&nbsp;</span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="transactionInterceptor"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ref</span><span style="color: #0000FF; ">="transactionInterceptor"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="beanNames"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span>*Service<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red; background-color: yellow;">&nbsp;&nbsp;</span><span style="color: red; background-color: yellow;">&lt;</span><span style="color: red; background-color: yellow;">value</span><span style="color: red; background-color: yellow;">&gt;</span><span style="color: red; background-color: yellow;">*Biz</span><span style="color: red; background-color: yellow;">&lt;/</span><span style="color: red; background-color: yellow;">value</span><span style="color: red; background-color: yellow;">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="interceptorNames"</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span>transactionInterceptor<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">beans</span><span style="color: #0000FF; ">&gt;</span></div><br />启动tomcat后报出如下错误信息：<br /><div>[2013-03-05 10:36:56] [ERROR] Context initialization failed - at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:215)&nbsp;</div><div>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginBiz' defined in ServletContext resource [/WEB-INF/spring-service-resource.xml]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:445)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)</div><div><span style="white-space: pre;">	</span>at java.security.AccessController.doPrivileged(Native Method)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:400)</div><div><span style="white-space: pre;">	</span>at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)</div><div><span style="white-space: pre;">	</span>at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)</div><div><span style="white-space: pre;">	</span>at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)</div><div><span style="white-space: pre;">	</span>at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)</div><div><span style="white-space: pre;">	</span>at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardService.start(StandardService.java:519)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.startup.Catalina.start(Catalina.java:581)</div><div><span style="white-space: pre;">	</span>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</div><div><span style="white-space: pre;">	</span>at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</div><div><span style="white-space: pre;">	</span>at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</div><div><span style="white-space: pre;">	</span>at java.lang.reflect.Method.invoke(Method.java:597)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)</div><div>Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:213)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:433)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:331)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1266)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)</div><div><span style="white-space: pre;">	</span>... 28 more</div><div>Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:718)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:499)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201)</div><div><span style="white-space: pre;">	</span>... 34 more</div><div>2013-3-5 10:36:56 org.apache.catalina.core.StandardContext listenerStart</div><div>严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener</div><div>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginBiz' defined in ServletContext resource [/WEB-INF/spring-service-resource.xml]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:445)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)</div><div><span style="white-space: pre;">	</span>at java.security.AccessController.doPrivileged(Native Method)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:400)</div><div><span style="white-space: pre;">	</span>at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)</div><div><span style="white-space: pre;">	</span>at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)</div><div><span style="white-space: pre;">	</span>at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261)</div><div><span style="white-space: pre;">	</span>at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)</div><div><span style="white-space: pre;">	</span>at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardService.start(StandardService.java:519)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.startup.Catalina.start(Catalina.java:581)</div><div><span style="white-space: pre;">	</span>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</div><div><span style="white-space: pre;">	</span>at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)</div><div><span style="white-space: pre;">	</span>at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)</div><div><span style="white-space: pre;">	</span>at java.lang.reflect.Method.invoke(Method.java:597)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)</div><div><span style="white-space: pre;">	</span>at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)</div><div>Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.ccms.login.LoginBiz]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:213)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:433)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:331)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1266)</div><div><span style="white-space: pre;">	</span>at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)</div><div><span style="white-space: pre;">	</span>... 28 more</div><div>Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:718)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:499)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)</div><div><span style="white-space: pre;">	</span>at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)</div><div><span style="white-space: pre;">	</span>at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:201)</div><div><span style="white-space: pre;">	</span>... 34 more</div><div>2013-3-5 10:36:56 org.apache.catalina.core.StandardContext start</div><div><br />------------------------------------------</div>通过以上错误分析之：<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">对于实现了接口的类，直接用了JDK的动态代理，把目标对象扔给JDK的Proxy，拿到代理对象就OK了。</span><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25.1875px; background-color: #ffffff;">然而对于没有实现接口的类，Spring借助于CGLIB来实现代理。<br />解决办法：<br /></span>当使用CGLIB来实现代理后，没有实现接口的类<br />1、 通过构造函数形式注入时必须有默认的构造函数，否则就会出现上面的异常。<br />2、通过生产setter或者getter方法注入。<br />3、通过修改Spring的<span style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; line-height: 18px; background-color: #fafafa;">CglibProxyFactory工厂类。<br /><br /></span>详细解析可以参照这篇文章：<a href="http://netfork.iteye.com/blog/286215">http://netfork.iteye.com/blog/286215</a><img src ="http://www.blogjava.net/ldwblog/aggbug/396081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2013-03-05 14:54 <a href="http://www.blogjava.net/ldwblog/archive/2013/03/05/396081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FTPUtil上传工具类</title><link>http://www.blogjava.net/ldwblog/archive/2011/01/21/343311.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Fri, 21 Jan 2011 04:01:00 GMT</pubDate><guid>http://www.blogjava.net/ldwblog/archive/2011/01/21/343311.html</guid><wfw:comment>http://www.blogjava.net/ldwblog/comments/343311.html</wfw:comment><comments>http://www.blogjava.net/ldwblog/archive/2011/01/21/343311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldwblog/comments/commentRss/343311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldwblog/services/trackbacks/343311.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cf">package com.sinovatech.unicom.efb.common;</font></p>
<font style="background-color: #cce8cf">
<p><br />
import java.io.BufferedOutputStream;<br />
import java.io.File;<br />
import java.io.FileInputStream;<br />
import java.io.FileOutputStream;<br />
import java.io.IOException;<br />
import java.io.InputStream;<br />
import java.net.SocketException;</p>
<p>import org.apache.commons.logging.Log;<br />
import org.apache.commons.logging.LogFactory;<br />
import org.apache.commons.net.ftp.FTPClient;<br />
import org.apache.commons.net.ftp.FTPFile;</p>
<p>/**<br />
&nbsp;* <br />
&nbsp;* 目的:FTP文件类<br />
&nbsp;* &lt;br/&gt;<br />
&nbsp;* <br />
&nbsp;* FTP上传文件、下载文件<br />
&nbsp;* <br />
&nbsp;*&nbsp;* <br />
&nbsp;*/<br />
public class FTPUtil {<br />
&nbsp;private static final Log log = LogFactory.getLog(FTPUtil.class);</p>
<p>&nbsp;public static int download(String ip,int port,String userName,String password,FileFilter filter,String localFilePath) throws SocketException, IOException{<br />
&nbsp;&nbsp;return download(ip, port, userName, password, null,filter, localFilePath);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public static int download(String ip,int port,String userName,String password,String ftpPath,FileFilter filter,String localFilePath) throws SocketException, IOException{<br />
&nbsp;&nbsp;FTPClient ftp = new FTPClient();<br />
&nbsp;&nbsp;int i=0;<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;// 不为空连接 通过IP 和端口<br />
&nbsp;&nbsp;&nbsp;&nbsp;ftp.connect(ip, port);<br />
&nbsp;&nbsp;&nbsp;&nbsp;// 登陆<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (ftp.login(userName, password)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftp.enterLocalPassiveMode();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 获取FTP登陆目录下的所有文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ftpPath!=null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!ftp.changeWorkingDirectory(ftpPath)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw new RuntimeException("找不到该目录:"+ftpPath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FTPFile[] files = ftp.listFiles();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (FTPFile file : files) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String fileName = file.getName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (filter.accept(fileName)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedOutputStream out = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// IO流下载文件到本地<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out = new BufferedOutputStream(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new FileOutputStream(new File(localFilePath<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,fileName)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 开始下载<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftp.retrieveFile(file.getName(), out);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info("下载文件:" + file.getName() + "到本地路径:"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ localFilePath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (out != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.error("", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = -1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;} finally {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(ftp != null&amp;&amp;ftp.isConnected()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info("关闭ftp连接");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftp.disconnect();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return i;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public static int download(String ip,int port,String userName,String password,String ftpPath,final String fileName,String localFilePath)throws SocketException, IOException{<br />
&nbsp;&nbsp;<br />
&nbsp;<br />
&nbsp;&nbsp;return &nbsp;download(ip, port, userName, password,ftpPath,new FileFilter(){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;public boolean accept(String fileName1) {<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return fileName.equalsIgnoreCase(fileName1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;}, localFilePath);<br />
&nbsp;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;public static int download(String ip,int port,String userName,String password,final String fileName,String localFilePath)throws SocketException, IOException{<br />
&nbsp;&nbsp;return &nbsp;download(ip, port, userName, password,null,fileName, localFilePath);<br />
&nbsp;}</p>
<p>&nbsp;<br />
&nbsp;/**<br />
&nbsp; * ftp上传文件至服务器<br />
&nbsp; * @throws SocketException <br />
&nbsp; * @throws IOException<br />
&nbsp; */<br />
&nbsp;public static void uploadFile(String ip, int port, String userName, String password, String localFile) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws SocketException, IOException{<br />
&nbsp;&nbsp;log.info("上传本地文件: " + localFile);<br />
&nbsp;&nbsp;File file = new File(localFile);<br />
&nbsp;&nbsp;InputStream in = null;<br />
&nbsp;&nbsp;FTPClient ftpClient = null;<br />
&nbsp;&nbsp;if(file != null){<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;ftpClient = new FTPClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;in = new FileInputStream(file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.connect(ip,port);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(ftpClient.login(userName, password)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.enterLocalPassiveMode(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean flag= ftpClient.appendFile(file.getName(), in);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info("上传文件成功:" + flag);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}catch (SocketException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;log.error("ftp上传文件失败:", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;throw e;<br />
&nbsp;&nbsp;&nbsp;}catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;log.error("ftp上传文件失败:", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;throw e;<br />
&nbsp;&nbsp;&nbsp;} finally{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(in != null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(ftpClient != null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.disconnect();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;public static void upload(String ip, int port, String userName, String password, String path,String remotePath) <br />
&nbsp;throws SocketException, IOException{<br />
&nbsp;&nbsp;upload(ip, port, userName, password, new File(path), remotePath);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * ftp上传文件至服务器<br />
&nbsp; * @throws SocketException <br />
&nbsp; * @throws IOException<br />
&nbsp; */<br />
&nbsp;public static void upload(String ip, int port, String userName, String password, File localFile,String remotePath) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throws SocketException, IOException{<br />
&nbsp;&nbsp;log.info("上传本地文件: " + localFile.getName());<br />
&nbsp;&nbsp;InputStream in = null;<br />
&nbsp;&nbsp;FTPClient ftpClient = null;<br />
&nbsp;&nbsp;if(localFile != null){<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;ftpClient = new FTPClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;in = new FileInputStream(localFile);<br />
&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.connect(ip,port);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(ftpClient.login(userName, password)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.enterLocalPassiveMode(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(remotePath!=null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!ftpClient.changeWorkingDirectory(remotePath)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.makeDirectory(remotePath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.changeWorkingDirectory(remotePath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean flag= ftpClient.storeFile(localFile.getName(), in);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.info("上传文件成功:" + flag);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}catch (SocketException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;log.error("ftp上传文件失败:", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;throw e;<br />
&nbsp;&nbsp;&nbsp;}catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;log.error("ftp上传文件失败:", e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;throw e;<br />
&nbsp;&nbsp;&nbsp;} finally{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(in != null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(ftpClient != null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ftpClient.disconnect();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>}<br />
</font></p>
<img src ="http://www.blogjava.net/ldwblog/aggbug/343311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldwblog/" target="_blank">David1228</a> 2011-01-21 12:01 <a href="http://www.blogjava.net/ldwblog/archive/2011/01/21/343311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>