<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feedsky.blogbus.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><link atom:type="text/html">http://bonfire.blogbus.com/</link><fs:self_link href="http://feeds.feedsky.com/blogbus.com/bonfire_blogbus_com" type="application/rss+xml"></fs:self_link><lastBuildDate>Tue, 31 Aug 2010 16:17:17 GMT</lastBuildDate><title>Bonfire</title><description>学海无涯</description><atom:link href="http://feedsky.blogbus.com/bonfire_blogbus_com" type="application/rss+xml" rel="self"></atom:link><generator xmlns="http://www.w3.org/2005/Atom" uri="http://www.blogbus.com/">博客大巴</generator><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/atom.xml</id><link xmlns="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://bonfire.blogbus.com/atom.xml"></link><pubDate>Tue, 31 Aug 2010 16:17:17 GMT</pubDate><image><title>Bonfire</title><url>http://public.blogbus.com/profile/9/1/6/1639619/avatar_1639619_96.jpg</url><link>http://bonfire.blogbus.com/</link></image><item><title>在windows上发布Qt4程序</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/59862133.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/59862133.html</id><description>&lt;p&gt;使用Qt Creator作为IDE编写好Qt应用并构建运行成功，如何在没有安装Qt的机器上运行呢？网络上已经有很多文章介绍，有两种方法：1. 静态编译，可生成单一的可执行文件，文件较小；2. 动态编译，需要复制dll文件，dll文件比较大（10MB以上）。&lt;/p&gt;
&lt;p&gt;据说静态编译需要这个过程需要1-2个小时，编译成功后QT目录会变成1.8G左右，我没有尝试，因此采用复制dll的方法。&lt;/p&gt;
&lt;p&gt;需要的工具&lt;strong&gt;Dependency Walker&lt;/strong&gt;（主页：&lt;a href=&quot;http://dependencywalker.com/&quot; target=&quot;_blank&quot;&gt;http://dependencywalker.com/&lt;/a&gt;），可以用来查看可执行文件依赖的dll动态链接库。用Dependency Walker打开编译好的hello.exe（Release版）文件后如图所示：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://filer.blogbus.com/1639619/16396191267685662f.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;依次查看各个DLL的位置，拷贝到可执行文件的目录。之后即可在没有安装Qt的Windows机器上运行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;在最简单的情况下，依赖的DLL都在类似D:/qt/2010.01/qt/bin目录中，分别是 mingwm10.dll，QtCore4.dll，QtGui4.dll 和 &lt;strong&gt;libgcc_s_dw2-1.dll&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;注意：如果使用Debug版的可执行文件，会出现&amp;ldquo;没有找到QtCored4.dll&amp;rdquo;的错误。是由于Debug版依赖的是QtCored4.dll，QtGuid4.dll 和 libgcc_s_dw2-1.dll的缘故。QtCored4.dll约28.89MB，而QtGuid4.dll约140.5MB。&lt;/p&gt;
&lt;p&gt;另外，转网络上的一段：&lt;/p&gt;
&lt;p&gt;程序中默认只支持png图片，如果使用了gif，jpg等格式的文件是显示不出来的。需要将Qt安装目录下的qt/plugins/目录中的imageformats文件夹拷贝到exe文件目录下（注意是整个文件夹）。而 imageformats 文件夹中只需要保留你需要的文件，例如你只需要支持gif文件，就只保留qgif4.dll即可。&lt;/p&gt;&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://blog.blogbus.com/?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=blog&quot; target=&quot;_blank&quot;&gt;群博录：每个博客，都有故事……&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/413275968/bonfire_blogbus_com/blogbus.com/s.gif?r=http://bonfire.blogbus.com/logs/59862133.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275968/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275968/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Thu, 04 Mar 2010 14:39:52 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/59862133.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/59862133.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275968/5013114</fs:itemid></item><item><title>安装redis和客户端redis-rb</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/58812699.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/58812699.html</id><description>&lt;p&gt;Redis是什么？&lt;/p&gt;
&lt;p&gt;这里是redis的主页：&lt;a title=&quot;Redis&quot; href=&quot;http://code.google.com/p/redis/&quot; target=&quot;_blank&quot;&gt;http://code.google.com/p/redis/&lt;/a&gt;。它是一个key-value数据库（也就是NoSQL数据库）。有什么用途等，主页上介绍很详细。下面记录一下我的安装过程。&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: '楷体_GB2312',sans-serif;&quot;&gt;以下主要参考&lt;a title=&quot;Visit Mark Mzyk&amp;rsquo;s 
website&quot; rel=&quot;external&quot; href=&quot;http://programmersparadox.com/&quot;&gt;Mark Mzyk&lt;/a&gt;的文章《&lt;a rel=&quot;bookmark&quot; href=&quot;http://www.programmersparadox.com/2009/06/02/redis-and-ruby/&quot;&gt;Redis and Ruby&lt;/a&gt;》&lt;/span&gt;&lt;span style=&quot;font-family: '楷体_GB2312',sans-serif;&quot;&gt;和文后的回复&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: '楷体_GB2312',sans-serif;&quot;&gt;。我主要是翻译了一部分。&lt;/span&gt;&lt;/em&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;有两种方法：&lt;/p&gt;
&lt;p&gt;一、手动下载构建gem包安装。&lt;/p&gt;
&lt;p&gt;使用强大的rake命令， 可以很轻易地安装redis（无需独立下载编译redis）及依赖包。&lt;/p&gt;
&lt;p&gt;1. 下载redis-rb客户端。 redis-rb位于github上， 地址为http://github.com/ezmobius/redis-rb。 可以使用&lt;br /&gt;&lt;strong&gt;git clone git://github.com/ezmobius/redis-rb.git &lt;/strong&gt;&lt;br /&gt;来下载（在ubuntu上可以使用sudo aptitude install git-core 来安装git。当然也可以不使用git直接在浏览器中下载redis-rb)。&lt;br /&gt;2. 如果没有安装rspec gem，那么安装之：&lt;br /&gt;&lt;strong&gt;sudo gem install rspec&lt;/strong&gt;&lt;br /&gt;3. 使用rake命令来安装redis&lt;br /&gt;&lt;strong&gt;rake redis:install&lt;/strong&gt;&lt;br /&gt;这会下载Redis并安装到/usr/bin， Redis的配置文件会在/etc/redis.conf。 之后可以使用&lt;br /&gt;redis-server 来启动。&lt;br /&gt;4. 安装dtach。 Redis依赖 dtach， 如果系统没安装，使用rake命令下载并安装至/usr/bin：&lt;br /&gt;&lt;strong&gt;rake dtach:install&lt;/strong&gt;&lt;br /&gt;5. 生成redis-rb gem。 这将会将redis-rb gem 打包并且放在pkg文件夹中：&lt;br /&gt;&lt;strong&gt;rake gem&lt;/strong&gt;&lt;br /&gt;6. 进入pkg目录，安装redis-rb（注意redis-rb在github上叫redis-rb，但是创建的gem叫redis）：&lt;br /&gt;&lt;strong&gt;sudo gem install redis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;二、 用gem命令直接从github安装（未验证）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;gem sources -a http://gems.github.com&lt;br /&gt;gem install ezmobius-redis-rb&lt;/strong&gt;&lt;/p&gt;&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://pindao.blogbus.com/fengshang?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=fengshang&quot; target=&quot;_blank&quot;&gt;风尚频道——国内顶尖的时尚族群汇聚于此，未必是流行，但一定要有品位。&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/413275969/bonfire_blogbus_com/blogbus.com/s.gif?r=http://bonfire.blogbus.com/logs/58812699.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275969/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275969/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Thu, 18 Feb 2010 15:23:43 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/58812699.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/58812699.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275969/5013114</fs:itemid></item><item><title>终于在Apache上部署上了Rails项目</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/58437800.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/58437800.html</id><description>&lt;p&gt;按照robbin的《&lt;a title=&quot;在Windows平台使用Apache2.2和Mongrel运行Ruby on Rails&quot; href=&quot;http://www.javaeye.com/topic/43290&quot; target=&quot;_blank&quot;&gt;在Windows平台使用Apache2.2和Mongrel运行Ruby on Rails&lt;/a&gt;》这篇文章所言，前几天终于在Apache上部署好了一个Rais项目。由于对Apache不熟悉，遇到了三个比较小白的问题，记录在此。&lt;/p&gt;
&lt;p&gt;1.用mongrel_rails把mongrel作为服务安装之后，还得启动才行。默认的mongrel_rails没有启动服务的插件，但可以在&amp;ldquo;服务&amp;rdquo;里用鼠标操作。（第一天配置好之后，无论如何都是&amp;ldquo;该页无法显示&amp;rdquo;，第二天早上起床突然反应过来没有启动服务&amp;hellip;&amp;hellip;）&lt;/p&gt;
&lt;p&gt;2.除了按照robbin的文章修改httpd.conf外，还得对静态文件目录设置权限。比如&lt;/p&gt;
&lt;p&gt;&amp;lt;Directory &quot;F:\Rails\app\public&quot;&amp;gt;&lt;br /&gt;Order Deny,Allow&lt;br /&gt;Allow from all&lt;br /&gt;&amp;lt;/Directory&amp;gt;&lt;/p&gt;
&lt;p&gt;否则，css、js、图片等静态文件无法加载，在log/error.log里会记录：&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;client denied by server configuration&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;3.在一个视图文件里，有一句&lt;/p&gt;
&lt;p&gt;link_to (h post.title, post)&lt;/p&gt;
&lt;p&gt;如果用启动一个进程运行服务器的话，在控制台会出现警告：&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;warning: don't put space before argument parentheses&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;也就是，如果使用括号的话，那么不应该在括号前有空格。如果在Apache上运行，会出现404页面。因此改为&lt;/p&gt;
&lt;p&gt;link_to h(post.title), post&lt;/p&gt;
&lt;p&gt;由于是使用production方式运行，还得重启（mongrel）服务器。&lt;/p&gt;&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://kanfa.blogbus.com/?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=kanfa&quot; target=&quot;_blank&quot;&gt;看法：大家看，大家说！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/413275970/bonfire_blogbus_com/blogbus.com/s.gif?r=http://bonfire.blogbus.com/logs/58437800.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275970/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275970/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Thu, 11 Feb 2010 11:11:35 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/58437800.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/58437800.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275970/5013114</fs:itemid></item><item><title>今天回来</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/40353099.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/40353099.html</id><description>&lt;p&gt;据说govern-ment&amp;ldquo;今日下午颁布全球优秀网络公司名单&amp;rdquo;，正式启动了国家防火墙修缮工作。嗯，还是国内的服务稳定。&lt;/p&gt;
&lt;p&gt;离开Blogbus半年多了，今天回来。刚刚一个一个隐藏了以前的文章，换了模板。以后有空我在这里多敲敲键盘。&lt;/p&gt;&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://pindao.blogbus.com/sejie?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=sejie&quot; target=&quot;_blank&quot;&gt;色界频道——这里有顶尖的摄影大师，也有摄影爱好者，他们用相机收纳大千世界。&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/413275971/bonfire_blogbus_com/blogbus.com/s.gif?r=http://bonfire.blogbus.com/logs/40353099.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275971/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275971/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Tue, 02 Jun 2009 19:00:27 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/40353099.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/40353099.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275971/5013114</fs:itemid></item><item><title>errno</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/31398705.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/31398705.html</id><description>今天本来是要完成TCP/IP网际互联的实验，没想到费了大量时间在gcc的使用上。写好程序之后，用gcc编译出了一个诡异的问题&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#800080&quot;&gt;&lt;span style=&quot;background-color: #ffffff&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccKZsHdg.o&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/lib/libc.so.6: could not read symbols: Bad value&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;collect2: ld returned 1 exit status&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;看了这些提示，完全不知所云。代码完全是那本《用TCP/IP进行网际互联第三卷：客户&amp;mdash;&amp;mdash;服务器编程与应用（Linux/POSIX套接字版）》上自带的吧，反正是从老师那里拷过来的。幸亏是回了寝室做实验，在网上搜了搜，看来遇到此问题的人士还不少。最后找到了解决办法。在我写的代码里有&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;extern int&amp;nbsp;&amp;nbsp; &amp;nbsp;errno;&lt;/font&gt;&lt;br /&gt;替换为&lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;#include &amp;lt;errno.h&amp;gt;&lt;/font&gt;&lt;br /&gt;即可。原因不得而知。可能是因为新的内核把有的地方改动了吧。&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://tuijian.blogbus.com/?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=tuijian&quot; target=&quot;_blank&quot;&gt;推荐：让我们寻找最优秀的Blogger！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275972/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275972/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Sat, 15 Nov 2008 20:43:40 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/31398705.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/31398705.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275972/5013114</fs:itemid></item><item><title>Ubuntu8.10登录802.1x网络</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/30934355.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/30934355.html</id><description>&lt;p&gt;8.10和8.04的network-manager有点不一样。据说功能增强了许多。但是，更新完8.10之后，一时却不知道如何拨号了。纠结了一番，终于拨起。&lt;br /&gt;&lt;br /&gt;在右上角网络连接上点右键，选编辑连接。里边已经有etho0了，但是因为要拨外网和内网，所以还是添加两个不同连接。&lt;br /&gt;&lt;br /&gt;MAC填自己机器的MAC，可以在终端输入 ifconfig 来查看，或者直接复制 etho0 的设置。在&amp;ldquo;802.1x 保护&amp;rdquo;选项卡里，我是这样设置的：给&amp;ldquo;为这个连接使用802.1X 保护&amp;rdquo;打勾，认证选 &amp;ldquo;保护的 EAP (PEAP)&amp;rdquo;，CA是&amp;ldquo;无&amp;rdquo;，PEAP的版本要选 &amp;ldquo;版本 0&amp;ldquo;（这个一定要选正确），内部认证是 &amp;ldquo;MSCHAPv2&amp;rdquo;。然后确定，就可已&amp;ldquo;您现在连接到了XX&amp;rdquo;了。&lt;/p&gt;&lt;p&gt;相关图片如下：&lt;/p&gt;&lt;p&gt;编辑连接：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://bonfire.blogbus.com/files/12256816450.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;连接信息： &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://bonfire.blogbus.com/files/12256816451.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://blog.blogbus.com/?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=blog&quot; target=&quot;_blank&quot;&gt;群博录：每个博客，都有故事……&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275973/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275973/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Mon, 03 Nov 2008 11:06:25 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/30934355.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/30934355.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275973/5013114</fs:itemid></item><item><title>Ubuntu键盘鼠标无响应</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/30934241.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/30934241.html</id><description>昨天兴冲冲地想从8.04更新到8.10。因为不想上外网，就从http://ubuntu.dormforce.net更新。先修改软件源列表，把以前的列表替换成8.10的。然后输入命令：&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;~$ sudo apt-get update&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;~$ sudo apt-get dist-upgrade&lt;br /&gt;然后就等着更新。更新很长，就一边上论坛，一边听着硬盘咯吱咯吱响。没想到，更新一半，机器突然没了响应，等了好久还是卡在那里，只有鼠标可以动。这些郁闷了，最后还是绝望地强行关机，准备重装了。&lt;br /&gt;&lt;br /&gt;因为没有8.10的盘，只好先装8.04，然后再升级。这些都还顺利。不想更新完之后重启，又出了问题：在登录界面，鼠标、键盘都没反应，只有触摸版还能控制鼠标。先重启了一次，还是老样子。只好回到Windows上网查。&lt;br /&gt;&lt;br /&gt;原来是 /etc/X11/xorg.conf 这个文件的原因。在recovery mode进入Ubuntu的控制台，现在键盘可以用哈。打开这个文件，除了注释，内容如下：&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # xorg.conf (X.Org X Window System server configuration file)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # This file was generated by dexconf, the Debian X Configuration tool, using&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # values from the debconf database.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Edit this file with caution, and see the xorg.conf manual page.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # (Type &amp;quot;man xorg.conf&amp;quot; at the shell prompt.)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # This file is automatically updated on xserver-xorg package upgrades *only*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # if it has not been modified since the last upgrade of the xserver-xorg&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # package.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # If you have edited this file but would like it to be automatically updated&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # again, run the following command:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #&amp;nbsp;&amp;nbsp; sudo dpkg-reconfigure -phigh xserver-xorg&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Generic Keyboard&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Driver&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;kbd&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;XkbRules&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;xorg&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;XkbModel&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;pc105&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;XkbLayout&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;us&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndSection&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Configured Mouse&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Driver&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;mouse&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;CorePointer&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndSection&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Synaptics Touchpad&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Driver&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;synaptics&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;SendCoreEvents&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;true&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Device&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;/dev/psaux&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Protocol&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;auto-dev&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Option&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;HorizEdgeScroll&amp;quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;0&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndSection&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Section &amp;quot;Device&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Configured Video Device&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndSection&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Configured Monitor&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndSection&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Section &amp;quot;Screen&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Default Screen&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Monitor&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Configured Monitor&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Device&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Configured Video Device&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndSection&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Identifier&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Default Layout&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Screen&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Default Screen&amp;quot;&lt;br /&gt;&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputDevice&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Generic Keyboard&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputDevice&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Configured Mouse&amp;quot;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InputDevice&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Synaptics Touchpad&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EndSection&lt;br /&gt;&lt;br /&gt;上面红色加粗的两行是我系统本来没有的，刚好是关于键盘和鼠标的两行。添加上之后，重启后鼠标键盘就可以用了。&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://pindao.blogbus.com/shenghuo?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=shenghuo&quot; target=&quot;_blank&quot;&gt;生活频道——笑谈生活，坐看人生，这里有着小人物的健康生活。&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275974/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275974/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Mon, 03 Nov 2008 11:04:53 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/30934241.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/30934241.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275974/5013114</fs:itemid></item><item><title>仿射加密与解密</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/29581326.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/29581326.html</id><description>&lt;p&gt;仿射加密函数取形式为&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;     &lt;br /&gt;e(x)=ax+b (mod 26), a,b&amp;isin;Z/(26)，具有唯一解的充要条件是gcd( a,26)=1&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;   &lt;br /&gt;算法描述：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;     &lt;br /&gt;设P=C=Z/(26)，K={(a,b) &amp;isin;Z/(26)&amp;times;Z/(26)| gcd(a,26)=1}       &lt;br /&gt;对k=(a,b) &amp;isin;K,定义ek(x)=ax+b (mod 26)，dk(y)=a-1(y-b)(mod 26)，x,y &amp;isin;Z/(26)       &lt;br /&gt;可能的密钥是26Ｘ11个&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;前几天一直在搞仿射加密的程序，算法极其简单。不过，因为是第二次写Java的UI程序，所以花了很多时间，合计有十来个小时吧（太笨了）。写的时候发现，其实连最简单的Java数组都不太会用，几乎是一边查JDK文档，一边百度，最终写完了SWT的UI程序（稍后附上，晚上这个时候网络不好）。&lt;/p&gt;      &lt;p&gt;以下是编码类和译码类，现在还不习惯写注释&amp;hellip;&amp;hellip;所以写得很不规范，不过基本还能看懂。只对英文字母编码或者译码，其余符号跳过。 &lt;/p&gt;  &lt;p&gt;编码类Coding&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;package&lt;/span&gt; affineCipher; &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; Coding {&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyA;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyB;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; String plaintext;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; String cryptograph;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; Coding(){    &lt;br /&gt;    }&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; Coding(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyA, &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyB, String plaintext) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;super&lt;/span&gt;();&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyA = keyA;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyB = keyB;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.plaintext = plaintext.toLowerCase();&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; getKeyA() {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; keyA;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; setKeyA(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyA) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyA = keyA;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; getKeyB() {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; keyB;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; setKeyB(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyB) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyB = keyB;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; String getPlaintext() {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; plaintext;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; setPlaintext(String plaintext) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.plaintext = plaintext;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; String getResult(){&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;[] p= plaintext.toLowerCase().toCharArray();&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;[] c= &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;[p.length];&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; indexP = 0;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; indexC = 0;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;for&lt;/span&gt;(indexP=0;indexP&amp;lt;p.length;indexP++){&lt;br /&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt;( p[indexP]&amp;gt;='a' &amp;amp;&amp;amp; p[indexP] &amp;lt;='z'){&lt;br /&gt;                c[indexC]=(&lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;) (((p[indexP]-'a')*keyA+keyB)%26+'a');&lt;br /&gt;                indexC++;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        cryptograph =&lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; String(c);&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; cryptograph;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; main(String []args){&lt;br /&gt;        Coding a=&lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; Coding();&lt;br /&gt;        a.setKeyA(7);&lt;br /&gt;        a.setKeyB(3);&lt;br /&gt;        a.setPlaintext(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;hot&lt;/span&gt;&amp;quot;);        &lt;br /&gt;        System.out.println(a.getResult());&lt;br /&gt;    }&lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;译码类Decoding&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;package&lt;/span&gt; affineCipher; &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; Decoding {&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyA;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyB;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; String plaintext;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; String cryptograph;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; Decoding(){&lt;br /&gt;    }&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; Decoding(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyA, &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyB, String cryptograph) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;super&lt;/span&gt;();&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyA = keyA;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyB = keyB;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.cryptograph=cryptograph.toLowerCase();&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; getKeyA() {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; keyA;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; setKeyA(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyA) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyA = keyA;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; getKeyB() {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; keyB;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; setKeyB(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; keyB) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.keyB = keyB;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; String getCryptograph() {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; cryptograph;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; setCryptograph(String cryptograph) {&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.cryptograph = cryptograph.toLowerCase();&lt;br /&gt;    }&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; String getResult(){&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;[] c= cryptograph.toLowerCase().toCharArray();&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;[] p= &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;[c.length];&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; inverseKeyA = 0;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;for&lt;/span&gt; (&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; i = 0; i &amp;lt; 26 ; i ++){&lt;br /&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; ((keyA * i)%26 == 1){&lt;br /&gt;                inverseKeyA = i;&lt;br /&gt;                &lt;span style=&quot;color: #0000ff&quot;&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; indexP = 0;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; indexC = 0;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;for&lt;/span&gt; (indexC = 0 ; indexC &amp;lt; c.length ; indexC ++){&lt;br /&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (c[indexC]&amp;gt;='a' &amp;amp;&amp;amp; c[indexC]&amp;lt;='z'){&lt;br /&gt;                p[indexP] = (&lt;span style=&quot;color: #0000ff&quot;&gt;char&lt;/span&gt;) ((inverseKeyA * (c[indexC] - 'a' - keyB + 26) )% 26 + 'a');&lt;br /&gt;                indexP++;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        plaintext =  &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; String (p);&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; plaintext;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;void&lt;/span&gt; main(String []args){&lt;br /&gt;        Decoding d = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; Decoding(7 , 3 , &amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;az&lt;/span&gt;&amp;quot;);&lt;br /&gt;        System.out.println(d.getResult());&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/blockquote&gt;&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://kanfa.blogbus.com/?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=kanfa&quot; target=&quot;_blank&quot;&gt;看法：大家看，大家说！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275975/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275975/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Wed, 24 Sep 2008 21:45:33 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/29581326.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/29581326.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275975/5013114</fs:itemid></item><item><title>CGLIB Enhancement failed</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/29415801.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/29415801.html</id><description>昨晚用SSH写了一个灰常简单的注册页面，有了强大的MyEclipse，大多时间都在点鼠标。在Tomcat里运行，虽然在浏览器里一切正常，而且数据也写进了数据库。但是后台却抛出了大量异常。其中主要是一个错误 CGLIB Enhancement failed。在网上搜索了一下，找到一篇文章《Spring Hibernate在AOP方面的配置冲突解决之道》。不确定是不是原创，因为转载这篇文章的太多了，最后在Google搜索了一下，这个来源最有可能（署名应该是lingoosoft）：&lt;br /&gt;&lt;a href=&quot;http://lingoosoft.blog.ccidnet.com/blog-htm-do-showone-itemid-102500.html&quot; target=&quot;_blank&quot; title=&quot;Spring Hibernate在AOP方面的配置冲突解决之道&quot;&gt;http://lingoosoft.blog.ccidnet.com/blog-htm-do-showone-itemid-102500.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face=&quot;'黑体', sans-serif&quot; color=&quot;#003366&quot;&gt;2006年11月05日 16:17:29&lt;br /&gt;Spring Hibernate在AOP方面的配置冲突解决之道&lt;br /&gt;&lt;br /&gt;环境：Spring2.0 Hibernate3.1.x/Hibernate3.2&lt;br /&gt;&lt;br /&gt;在使用Spring的AOP编程时，会用到这几个lib：&lt;br /&gt;asm-2.2.2.jar&lt;br /&gt;asm-commons-2.2.2.jar&lt;br /&gt;asm-util-2.2.2.jar&lt;br /&gt;&lt;br /&gt;Hibernate使用如果lib：&lt;br /&gt;asm.jar&lt;br /&gt;asm-attrs.jar&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;其中asm-2.2.2.jar与asm.jar存在类上的冲突！！！&lt;br /&gt;使用其中之一或两者都使用，可能会出现如下错误：&lt;br /&gt;java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor&lt;br /&gt;java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor&lt;br /&gt;java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;解决办法是：&lt;br /&gt;1.去掉类路径上的关于Hibernate的3个lib&lt;br /&gt;asm.jar&lt;br /&gt;asm-attrs.jar&lt;br /&gt;cglib-2.1.3.jar&lt;br /&gt;&lt;br /&gt;2.加入Spring中的以下4个lib&lt;br /&gt;asm-2.2.2.jar&lt;br /&gt;asm-commons-2.2.2.jar&lt;br /&gt;asm-util-2.2.2.jar&lt;br /&gt;cglib-nodep-2.1_3.jar&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;昨晚试一试了，按照文章里做了，还是不行。和黑哥聊天的时候，还说起Java方面厂商太多，好麻烦。支持Microsoft的黑哥，又说，&amp;ldquo;没有统一的标准&amp;rdquo;。我也有点小感叹，毕竟有时候就会出一些莫名其妙的问题，虽然最终有人帮忙解决，但的确浪费了很多时间。不过，Java还是有标准的！&lt;br /&gt;&lt;br /&gt;今天早上查了下，才反应过来，项目已经发布，就应该去Tomcat的项目文件夹里的lib下看看，果然，那3个lib还在。删除之，运行成功。&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://pindao.blogbus.com/shenghuo?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=shenghuo&quot; target=&quot;_blank&quot;&gt;生活频道——笑谈生活，坐看人生，这里有着小人物的健康生活。&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275976/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275976/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Sat, 20 Sep 2008 09:20:54 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/29415801.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/29415801.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275976/5013114</fs:itemid></item><item><title>MyEclipse5.5启动Tomcat5.x出错</title><link atom:type="text/html">http://bonfire.blogbus.com/logs/28036616.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bonfire</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bonfire.blogbus.com/logs/28036616.html</id><description>&lt;p&gt;刚才通过MyEclipse5.5启动Tomcat，结果错误弹出对话框，大意是配置错误，查了下原因。启动Application Server得用JDK（a full JDK installation），而不是JRE。 &lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#000080&quot;&gt;JDK Vertural Machine must specify a full JDK installation.    &lt;br /&gt;Specifying a JRE will result in an startup exception. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;可是我装了的就是JDK6，而不是JRE6。 &lt;/p&gt;  &lt;p&gt;解决办法：&lt;/p&gt;  &lt;p&gt;在MyEclipse - 窗口 - 首选项 - MyEclipse - Application Server - Tomcat - Tomcat5.x - JDK 里添加Tomcat JDK，在右边选 Add...，弹出的对话框里的JRE主目录里定位到安装的JDK的目录（JRE是它的子文件夹），点确定。&lt;/p&gt;    &lt;p&gt;至此，问题本来已经彻底解决，不想出了一个意外。&lt;/p&gt;  &lt;p&gt;在Servers视图里，选中Tomcat 5.x，Run Server。不幸，控制台抛出大量异常。 &lt;/p&gt;  &lt;blockquote style=&quot;background-color: #c0c0c0&quot;&gt;   &lt;p&gt;&lt;font size=&quot;1&quot;&gt;2008-8-22 23:52:57 org.apache.catalina.core.AprLifecycleListener lifecycleEvent      &lt;br /&gt;信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\java\java6\bin;D:\java\apache-tomcat-5.5.26\bin       &lt;br /&gt;2008-8-22 23:52:57 org.apache.coyote.http11.Http11BaseProtocol init       &lt;br /&gt;严重: Error initializing endpoint       &lt;br /&gt;java.net.BindException: Address already in use: JVM_Bind:8080       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:298)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.java:139)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.Connector.initialize(Connector.java:1017)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardService.initialize(StandardService.java:578)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:782)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Catalina.load(Catalina.java:504)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Catalina.load(Catalina.java:524)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:597)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:267)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)       &lt;br /&gt;2008-8-22 23:52:57 org.apache.catalina.startup.Catalina load       &lt;br /&gt;严重: Catalina.start       &lt;br /&gt;LifecycleException:&amp;nbsp; Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind:8080       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.Connector.initialize(Connector.java:1019)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardService.initialize(StandardService.java:578)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:782)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Catalina.load(Catalina.java:504)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Catalina.load(Catalina.java:524)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:597)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:267)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)       &lt;br /&gt;2008-8-22 23:52:57 org.apache.catalina.startup.Catalina load       &lt;br /&gt;信息: Initialization processed in 578 ms       &lt;br /&gt;2008-8-22 23:52:57 org.apache.catalina.core.StandardService start       &lt;br /&gt;信息: Starting service Catalina       &lt;br /&gt;2008-8-22 23:52:57 org.apache.catalina.core.StandardEngine start       &lt;br /&gt;信息: Starting Servlet Engine: Apache Tomcat/5.5.26       &lt;br /&gt;2008-8-22 23:52:57 org.apache.catalina.core.StandardHost start       &lt;br /&gt;信息: XML validation disabled       &lt;br /&gt;2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: &lt;a href=&quot;http://www.cnn.com]&quot;&gt;http://www.cnn.com]&lt;/a&gt;, [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: &lt;a href=&quot;http://www.yahoo.com]&quot;&gt;http://www.yahoo.com]&lt;/a&gt;, [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: &lt;a href=&quot;http://jakarta.apache.org]]&quot;&gt;http://jakarta.apache.org]]&lt;/a&gt;&lt;br /&gt;2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: ContextListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: SessionListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: ContextListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:52:58 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: SessionListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:52:58 org.apache.coyote.http11.Http11BaseProtocol start       &lt;br /&gt;严重: Error starting endpoint       &lt;br /&gt;java.net.BindException: Address already in use: JVM_Bind:8080       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:298)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.tomcat.util.net.PoolTcpEndpoint.startEndpoint(PoolTcpEndpoint.java:313)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.Http11BaseProtocol.start(Http11BaseProtocol.java:151)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:76)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.Connector.start(Connector.java:1090)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardService.start(StandardService.java:457)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Catalina.start(Catalina.java:552)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:597)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)       &lt;br /&gt;2008-8-22 23:52:58 org.apache.catalina.startup.Catalina start       &lt;br /&gt;严重: Catalina.start:       &lt;br /&gt;LifecycleException:&amp;nbsp; service.getName(): &amp;quot;Catalina&amp;quot;;&amp;nbsp; Protocol handler start failed: java.net.BindException: Address already in use: JVM_Bind:8080       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.connector.Connector.start(Connector.java:1097)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardService.start(StandardService.java:457)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Catalina.start(Catalina.java:552)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:597)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)       &lt;br /&gt;2008-8-22 23:52:58 org.apache.catalina.startup.Catalina start       &lt;br /&gt;信息: Server startup in 1141 ms &lt;/font&gt;       &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;第一个异常java.net.BindException: Address already in use: JVM_Bind:8080，猜测应该是端口已经被占用了吧。于是搜了一下，下载一个叫TCPView的小软件。不出所料，Tomcat的默认端口8080果然被占了&amp;mdash;&amp;mdash;那个进程竟然是QQMusic.exe。我晕哦，QQMusic.exe居然占了6个端口。8080端口的状态为LISTENING。今天第一次用QQMusic，竟然就给人添乱！&lt;/p&gt;  &lt;p&gt;关掉QQMusic.exe，重启Tomcat，运行成功，没有抛出异常，输出日志为： &lt;/p&gt;  &lt;blockquote style=&quot;background-color: #c0c0c0&quot;&gt;   &lt;p&gt;&lt;font size=&quot;1&quot; color=&quot;#000000&quot;&gt;2008-8-22 23:59:39 org.apache.catalina.core.AprLifecycleListener lifecycleEvent      &lt;br /&gt;信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\java\java6\bin;D:\java\apache-tomcat-5.5.26\bin       &lt;br /&gt;2008-8-22 23:59:39 org.apache.coyote.http11.Http11BaseProtocol init       &lt;br /&gt;信息: Initializing Coyote HTTP/1.1 on http-8080       &lt;br /&gt;2008-8-22 23:59:39 org.apache.catalina.startup.Catalina load       &lt;br /&gt;信息: Initialization processed in 562 ms       &lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.StandardService start       &lt;br /&gt;信息: Starting service Catalina       &lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.StandardEngine start       &lt;br /&gt;信息: Starting Servlet Engine: Apache Tomcat/5.5.26       &lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.StandardHost start       &lt;br /&gt;信息: XML validation disabled       &lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: &lt;a href=&quot;http://www.cnn.com]&quot;&gt;http://www.cnn.com]&lt;/a&gt;, [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: &lt;a href=&quot;http://www.yahoo.com]&quot;&gt;http://www.yahoo.com]&lt;/a&gt;, [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: &lt;a href=&quot;http://jakarta.apache.org]]&quot;&gt;http://jakarta.apache.org]]&lt;/a&gt;&lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: ContextListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: SessionListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: ContextListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:59:40 org.apache.catalina.core.ApplicationContext log       &lt;br /&gt;信息: SessionListener: contextInitialized()       &lt;br /&gt;2008-8-22 23:59:40 org.apache.coyote.http11.Http11BaseProtocol start       &lt;br /&gt;信息: Starting Coyote HTTP/1.1 on http-8080       &lt;br /&gt;2008-8-22 23:59:41 org.apache.jk.common.ChannelSocket init       &lt;br /&gt;信息: JK: ajp13 listening on /0.0.0.0:8009       &lt;br /&gt;2008-8-22 23:59:41 org.apache.jk.server.JkMain start       &lt;br /&gt;信息: Jk running ID=0 time=0/15&amp;nbsp; config=null       &lt;br /&gt;2008-8-22 23:59:41 org.apache.catalina.storeconfig.StoreLoader load       &lt;br /&gt;信息: Find registry server-registry.xml at classpath resource       &lt;br /&gt;2008-8-22 23:59:41 org.apache.catalina.startup.Catalina start       &lt;br /&gt;信息: Server startup in 1906 ms&lt;/font&gt;        &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Tomcat是正常运行了，不过让人郁闷的是，QQMusic.exe进程依然运行，而且占了两个端口，过了几分钟剩一个了，状态是FIN_WAIT1，占用端口为3654，远程地址192.24.57.59.broad.qz.fj.dynamic.163data.com.cn:12146。再过了三四分钟，QQMusic.exe终于全部终止。顺便看了一下，TM.exe也有7个进程。&lt;/p&gt;  &lt;p&gt;不过，那条最长的信息里，竟然有CNN，Yahoo以及Jakarta的主页，有点小意外。&lt;/p&gt;&lt;!--sp--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://blog.blogbus.com/?utm_source=blogbus&amp;utm_medium=rss&amp;utm_campaign=blog&quot; target=&quot;_blank&quot;&gt;群博录：每个博客，都有故事……&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bonfire_blogbus_com/413275977/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bonfire_blogbus_com/413275977/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bonfire.blogbus.com/c/">未分类</category><pubDate>Sat, 23 Aug 2008 00:11:55 +0800</pubDate><guid isPermaLink="false">http://bonfire.blogbus.com/logs/28036616.html</guid><dc:creator>bonfire</dc:creator><fs:srclink>http://bonfire.blogbus.com/logs/28036616.html</fs:srclink><fs:srcfeed>http://bonfire.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bonfire_blogbus_com/~6905195/413275977/5013114</fs:itemid></item></channel></rss>
