﻿<?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-bob-文章分类-quartz</title><link>http://www.blogjava.net/keweibo/category/50958.html</link><description>一专  Java 多能  Delphi,Powerbuilder ... </description><language>zh-cn</language><lastBuildDate>Mon, 05 Mar 2012 03:15:10 GMT</lastBuildDate><pubDate>Mon, 05 Mar 2012 03:15:10 GMT</pubDate><ttl>60</ttl><item><title>解決org.quartz.JobPersistenceException: Couldn't acquire next trigger: Couldn't retrieve trigger: null </title><link>http://www.blogjava.net/keweibo/articles/371245.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Mon, 05 Mar 2012 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/371245.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/371245.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/371245.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/371245.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/371245.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12px"></span></p><div>org.quartz.JobPersistenceException: Couldn't acquire next trigger: Couldn't retrieve trigger: null&nbsp;</div><div>[Seenested exception: org.quartz.JobPersistenceException: Couldn't retrieve trigger: null&nbsp;</div><div>[See nestedexception: java.io.EOFException]]</div><div></div><div>这个错是因为jobdataMap的数据转化成blob字段时出错,</div><div></div><div>在quartz的文档中有推荐说jobdatamap都用string,可以避免此类错误</div><div></div><div>要做到限制全是string必须在quartz.properties中把org.quartz.jobStore.useProperties设成true</div><div></div><div>同时别忘了加对应数据库的org.quartz.jobStore.driverDelegateClass</div><div></div><div>//我的就是按照上面说的在quart.properties文件中加上</div><div></div><div>org.quartz.jobStore.useProperties = true后解决的问题</div><p><span style="font-size: 12px"></span></p><img src ="http://www.blogjava.net/keweibo/aggbug/371245.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2012-03-05 09:50 <a href="http://www.blogjava.net/keweibo/articles/371245.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>下载、设置和运行Quartz(GUI)图形界面程序----Quartz Web</title><link>http://www.blogjava.net/keweibo/articles/370922.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Tue, 28 Feb 2012 07:25:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/370922.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/370922.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/370922.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/370922.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/370922.html</trackback:ping><description><![CDATA[<div id="app-share-content" style="word-wrap: break-word; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #edf1f4; border-right-color: #edf1f4; border-bottom-color: #edf1f4; border-left-color: #edf1f4; border-image: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; padding-top: 20px; padding-right: 20px; padding-bottom: 20px; padding-left: 20px; color: #9a9a9a; font-size: 12px; font-family: arial; background-color: #f4f8fb; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>一、获取Quartz Web程序（Quartz GUI）。<br /></strong>早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的。几年前，一个 Web 应用被创立，它可用于管理 Quartz 框架。虽说是历经了几年有相当投入的开发，但不得不说的，总是时断时续的。近来出现有更多的要求对这个应用的更新与支持，因而又重新吸引了新的开发者自愿的工作并使之保持不断更新。这个应用就是知名的 Quartz Web 程序。Quartz Web 程序是作为 OpenSymphony 上 Quartz 源程序库的一部分。它曾经是放在 SourceForge 上的，但最近已迁移到新家了(译者注：在 SourceForge 仍可下载到)。旧的站点是&nbsp;<a style="color: #1463c4; ">http://sourceforge.net/projects/quartz</a>；新的站点(包括 Quartz Web 程序) 可在&nbsp;<a target="_blank" style="color: #1463c4; ">http://www.quartz-scheduler.org/community/repository.html</a>&nbsp;上找到。<br /><br />当前，还没有 Web 程序的二进制版，而且标准的 Quartz 下载中也不包括 Web 程序，所以你需要进入quartz的SVN(<a target="_blank" style="color: #1463c4; ">http://svn.terracotta.org/svn/quartz</a>)源代码树下的webapp目录即为Quartz Web 的源码目录，下载到 Quartz 源代码树并使用&nbsp;quartz/webapp目录下的 Ant 或Maven构建文件来构建这个 Web 程序。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">最新版的quartz web采用了struts2+freemarker+spring2.5的架构，还用到了开源的sitemesh和dwr，并在web.xml中设置用org.quartz.ui.web.init.DefinitionInitializer启动quartz，具体设置如下：<br />&lt;servlet&gt;<br />&nbsp;&nbsp; &lt;servlet-name&gt;DefinitionInitializer&lt;/servlet-name&gt;<br />&nbsp;&nbsp; &lt;servlet-class&gt;<br />&nbsp;&nbsp;&nbsp; org.quartz.ui.web.init.DefinitionInitializer<br />&nbsp;&nbsp; &lt;/servlet-class&gt;<br />&nbsp;&nbsp; &lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp; &lt;param-name&gt;definition-file&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;param-value&gt;(PATH_TO_DEFINITIONS_FILE)&lt;/param-value&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!--&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; if (PATH_TO_DEFINITIONS_FILE) is left as such, definitions are loaded from&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; /WEB-INF/classes/JobDefinitions.xml&nbsp;<br />&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp;&nbsp; &lt;/init-param&gt;<br />&nbsp;&nbsp; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />&lt;/servlet&gt;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>二、修改设置。<br /></strong>运行quartz/webapp&nbsp;目录下的 Ant 或Maven构建文件来构建这个 Web 程序，会得到一各为quartz.war的包，但在打包前我们应该修改其默认设置。默认下Quartz Web是被设置内存(非持久化) 存储，如果要改为数据库存诸则须修改quartz的设置文件quartz.properties，为其配置jdbc（需用到dbcp连接池，所以另需加入commons-dbcp和commons-pool包）数据源或JNDI数据。<br /><strong>下面为jobStore各种设置：</strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">1、内存存储：<br />org.quartz.jobStore.misfireThreshold = 60000<br />org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">2、JDBC数据源（本例为oracle数据库，不同的数据库只要修改org.quartz.jobStore.driverDelegateClass的值为对应的数据库即可）：<br />org.quartz.jobStore.misfireThreshold = 60000<br />org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX<br />org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate<br />#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate<br />org.quartz.jobStore.dataSource = myDS<br />org.quartz.jobStore.tablePrefix = QRTZ_<br />org.quartz.jobStore.isClustered = false<br />org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver<br />org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@polarbear:1521:dev<br />org.quartz.dataSource.myDS.user = quartz<br />org.quartz.dataSource.myDS.password = quartz<br />org.quartz.dataSource.myDS.maxConnections = 5</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">3、JNDI数据源（本例为oracle数据库，不同的数据库只要修改org.quartz.jobStore.driverDelegateClass的值为对应的数据库即可）：<br />org.quartz.jobStore.misfireThreshold = 60000<br />org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX<br />org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate<br />#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate<br />org.quartz.jobStore.dataSource = myDS<br />org.quartz.jobStore.tablePrefix = QRTZ_<br />org.quartz.jobStore.isClustered = false<br />org.quartz.dataSource.myDS.jndiURL = java:comp/env/jdbc/JNDITEMP</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>Quartz Web程序通过插件的形式设置日志记录和自动加载job配置文件</strong>，具体如下：<br />1、日志记录插件：<br />org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">2、用插件org.quartz.plugins.xml.JobInitializationPlugin加载job配置文件，org.quartz.plugin.jobInitializer.fileNames指定了位于classpath下的job配置文件的名称，这里配置了两个插件，分别指定了三个job配置文件jobs.xml、jobs2.xml,jobs3.xml：<br /><br />org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin<br /># init plugin will load jobs.xml as a classpath resource i.e. /jobs.xml if not found on file system<br />org.quartz.plugin.jobInitializer.fileNames=jobs.xml<br />org.quartz.plugin.jobInitializer.overWriteExistingJobs = false<br />org.quartz.plugin.jobInitializer.failOnFileNotFound = false<br />org.quartz.plugin.jobInitializer.scanInterval = 30&nbsp;<br /># org.quartz.plugin.jobInitializer.wrapInUserTransaction = true</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">org.quartz.plugin.jobInitializerMultiple.class = org.quartz.plugins.xml.JobInitializationPlugin<br /># init plugin will load jobs.xml as a classpath resource i.e. /jobs.xml and jobs2.xml if not found on file system<br />org.quartz.plugin.jobInitializerMultiple.fileNames=jobs2.xml,jobs3.xml<br />org.quartz.plugin.jobInitializerMultiple.overWriteExistingJobs = false<br />org.quartz.plugin.jobInitializerMultiple.failOnFileNotFound = false<br /># org.quartz.plugin.jobInitializerMultiple.wrapInUserTransaction = true</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>Quartz Web程序通过JobDefinitions.xml来默认加载常用的job的定义</strong>，默认定义了三种quartz内置的job，分别为：<br />org.quartz.jobs.NativeJob<br />org.quartz.jobs.NoOpJob<br />org.quartz.jobs.ee.mail<br /><br /><strong>下面是Quartz内置的的各种job:</strong></p><table cellspacing="5" width="650" border="0" style="border-collapse: collapse; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><caption></caption><tbody><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><strong>Job 类</strong></td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><strong>Job 用法</strong></td></tr><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">org.quartz.jobs.FileScanJob</td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">检查某个指定文件是否变化，并在文<br />件被改变时通知到相应监听器的 Job</td></tr><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">org.quartz.jobs.FileScanListener</td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">在文件被修改后通知&nbsp;FileScanJob&nbsp;的监听器</td></tr><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">org.quartz.jobs.NativeJob</td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">用来执行本地程序(如 windows 下 .exe 文件) 的 Job</td></tr><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">org.quartz.jobs.NoOpJob</td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">什么也不做，但用来测试监听器不是很有用的。<br />一些用户甚至仅仅用它来导致一个监听器的运行</td></tr><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">org.quartz.jobs.ee.mail.SendMailJob</td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">使用 JavaMail API 发送 e-mail 的 Job</td></tr><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">org.quartz.jobs.ee.jmx.JMXInvokerJob</td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">调用 JMX bean 上的方法的 Job</td></tr><tr><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">org.quartz.jobs.ee.ejb.EJBInvokerJob</td><td style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">用来调用 EJB 上方法的 Job</td></tr></tbody></table><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>三、运行</strong>。将打包好的war包部署到服务上，访问<a style="color: #1463c4; ">http://localhost:8080/quartz</a>，然后用默认用户名：quartz 密码：quartz 登陆便可激忿进入系统。用户名和密码可在applicationContext.xml中修改，具体如下：<br />&lt;bean id="authenticator" class="org.quartz.ui.web.security.SimpleAuthenticator"&gt;<br />&nbsp;&nbsp; &lt;property name="username"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;quartz&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&nbsp;&nbsp; &lt;property name="password"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;value&gt;quartz&lt;/value&gt;<br />&nbsp;&nbsp; &lt;/property&gt;<br />&lt;/bean&gt;</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>Quartz Web 程序的截屏</strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; ">1、Quartz Web 程序主界面的左上方展示了它所拥有的特征列表</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong><img border="0" small="0" src="http://hiphotos.baidu.com/zengzhf/pic/item/866e394bc040456008f7ef12.jpg" width="580" height="424" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; width: 580px; height: 424.07199100112484px; "  alt="" /><br /></strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>2、</strong>Scheduler 控制界面，允许你启动、停止和暂停 Scheduler</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><img border="0" small="0" src="http://hiphotos.baidu.com/zengzhf/pic/item/1953c8088795f5676a60fbec.jpg" width="580" height="426" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; width: 580px; height: 426.8171557562077px; "  alt="" /><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #6d6d6d; line-height: 26px; "><strong>四、与现有Web程序结合（我已结合过，可行）。<br /></strong>我们也可将Quartz web加入到现有的web程序中，具体做法为：<br />1、将Quartz web的所有jar包和设置文件和页面文件copy至现有Web工程中。<br />2、合并各设置文件（主要是：web.xml、struts.xml和applicationContext.xml等）<br />3、修改Quartz web各程序的访问的命名空间。<br />4、Quartz web并不完善，有好多明显的错误，好多页面有错误需要修改后才能通过gui成功配置各调度</p></div><div id="appShareUrl" style="word-wrap: break-word; font-size: 12px; color: #999999; margin-top: 10px; border-top-width: 1px; border-top-style: solid; border-top-color: #f4f4f4; font-family: arial; background-color: #f4f8fb; clear: both; ">来自:&nbsp;http://apps.hi.baidu.com/share/detail/30631651<a href="http://hi.baidu.com/zengzhf/blog/item/87cdf60b76355a33b0351d2d.html" target="_blank" style="color: #9a9a9a; text-decoration: none; "></a></div><img src ="http://www.blogjava.net/keweibo/aggbug/370922.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2012-02-28 15:25 <a href="http://www.blogjava.net/keweibo/articles/370922.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>