﻿<?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-lizongbo 的 编程学习-随笔分类-java开源</title><link>http://www.blogjava.net/lizongbo/category/16591.html</link><description>http://618119.com</description><language>zh-cn</language><lastBuildDate>Sat, 27 Oct 2007 00:54:13 GMT</lastBuildDate><pubDate>Sat, 27 Oct 2007 00:54:13 GMT</pubDate><ttl>60</ttl><item><title>新注册了个独立域名，使用独立的blog</title><link>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Tue, 16 Oct 2007 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/153162.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/153162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/153162.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 新注册了个独立域名，使用独立的blog了。<br><br>http://618119.com<br><br>新的blog rss订阅地址： http://feed.feedsky.com/lizongbo<br><br>从最早的 http://blog.csdn.net/lizongbo,<br><br>到 http://blog.donews.com/lizongbo<br><br>再到http://www.blogjava.net/lizongbo<br><br>现在终于拥有自己的域名和独立的blog了。&nbsp;&nbsp;<a href='http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html'>阅读全文</a><img src ="http://www.blogjava.net/lizongbo/aggbug/153162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-10-16 09:46 <a href="http://www.blogjava.net/lizongbo/archive/2007/10/16/153162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql 双机热备配置</title><link>http://www.blogjava.net/lizongbo/archive/2007/10/13/152646.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Sat, 13 Oct 2007 13:53:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/10/13/152646.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/152646.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/10/13/152646.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/152646.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/152646.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cf">mysql 双机热备配置</font></p>
<p><font style="background-color: #cce8cf">1.下载mysql-noinstall-5.0.45-win32.zip<br />
2.解压到E:\mysql,然后将文件夹E:\mysql\mysql-noinstall-5.0.45-win32改为E:\mysql\master<br />
3.再解压到E:\mysql,然后将文件夹E:\mysql\mysql-noinstall-5.0.45-win32改为E:\mysql\slave<br />
4.复制E:\mysql\master\my-small.ini为E:\mysql\master\my.ini<br />
编辑内容:,增加log-bin和binlog-do-db参数<br />
示例如下:<br />
#skip-networking<br />
server-id&nbsp;= 1</font></p>
<p><font style="background-color: #cce8cf"># Uncomment the following if you want to log updates<br />
#log-bin=mysql-bin</font></p>
<p><font style="background-color: #cce8cf">log-bin=mysql-bin<br />
binlog-do-db = testdb1 #需同步数据库&nbsp; testdb1<br />
binlog-do-db = testdb2 #需同步数据库&nbsp; testdb2</font></p>
<p><font style="background-color: #cce8cf">5.复制E:\mysql\slave\my-small.ini为E:\mysql\slave\my.ini<br />
编辑内容:,修改端口,<br />
port&nbsp;&nbsp;= 3310</font></p>
<p><font style="background-color: #cce8cf">示例如下:</font></p>
<p><font style="background-color: #cce8cf">[client]<br />
#password&nbsp;= your_password<br />
port&nbsp;&nbsp;= 3310<br />
socket&nbsp;&nbsp;= /tmp/mysql.sock</font></p>
<p><font style="background-color: #cce8cf"># Here follows entries for some specific programs</font></p>
<p><font style="background-color: #cce8cf"># The MySQL server<br />
[mysqld]<br />
port&nbsp;&nbsp;= 3310<br />
socket&nbsp;&nbsp;= /tmp/mysql.sock<br />
skip-locking<br />
key_buffer = 16K<br />
max_allowed_packet = 1M<br />
table_cache = 4<br />
sort_buffer_size = 64K<br />
read_buffer_size = 256K<br />
read_rnd_buffer_size = 256K<br />
net_buffer_length = 2K<br />
thread_stack = 64K</font></p>
<font style="background-color: #cce8cf">
<p><br />
#skip-networking<br />
server-id&nbsp;= 2</p>
<p># Uncomment the following if you want to log updates<br />
#log-bin=mysql-bin</p>
<p>master-host=127.0.0.1<br />
master-user=root<br />
master-password=<br />
master-port=3306<br />
replicate-do-db=testdb1<br />
replicate-do-db=testdb2</p>
<p>6.保存 E:\mysql\master\my.ini.和E:\mysql\slave\my.ini</p>
<p>7.在命令行下运行E:\mysql\master\bin\mysqld.exe,</p>
<p>Microsoft Windows XP [版本 5.1.2600]<br />
(C) 版权所有 1985-2001 Microsoft Corp.</p>
<p>E:\mysql\master\bin&gt;mysqld</p>
<p>8.再新开命令行,运行E:\mysql\slave\bin\mysqld.exe</p>
<p>Microsoft Windows XP [版本 5.1.2600]<br />
(C) 版权所有 1985-2001 Microsoft Corp.</p>
<p>E:\mysql\slave\bin&gt;mysqld<br />
071013 21:41:06 [Warning] The syntax for replication startup options is deprecat<br />
ed and will be removed in MySQL 5.2. Please use 'CHANGE MASTER' instead.</p>
<p>9.用mysql 客户端 HeidiSQL连接到 127.0.0.1的3306,创建数据库testdb1和testdb2,<br />
并在数据库中新建表,然后插入一些数据.</p>
<p>10.客户端连接 到 127.0.0.1的3310,可以看见数据库testdb1和testdb2,且数据库中的数据与master的数据库数据一致.</p>
<p><font style="background-color: #cce8cf">11.t查看 E:\mysql\master\data\mysql-bin.000001 和E:\mysql\master\data\mysql-bin.index,可以看到被记录的sql操作, </font></p>
<p></font>&nbsp;</p>
<br />
<br />
<br />
<img src ="http://www.blogjava.net/lizongbo/aggbug/152646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-10-13 21:53 <a href="http://www.blogjava.net/lizongbo/archive/2007/10/13/152646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat,Squid,Lighttpd的https配置</title><link>http://www.blogjava.net/lizongbo/archive/2007/10/13/152555.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Sat, 13 Oct 2007 05:50:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2007/10/13/152555.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/152555.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2007/10/13/152555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/152555.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/152555.html</trackback:ping><description><![CDATA[<p><br />
4.4.6&nbsp; Tomcat HTTPS配置<br />
在server.xml里配置：<br />
tomcat普通的https配置<br />
&nbsp;&nbsp;&nbsp; &lt;Connector port="8443"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableLookups="false" disableUploadTimeout="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acceptCount="100" scheme="https" secure="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keystoreFile="conf/.keystore"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keystorePass="lizongbo"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/Connector&gt;</p>
<p><br />
Tomcat使用apr之后的ssl双向认证配置如下:</p>
<p>&nbsp;&nbsp; &lt;Connector port="8443" maxHttpHeaderSize="8192" protocol="HTTP/1.1"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enableLookups="false" disableUploadTimeout="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acceptCount="100" scheme="https" secure="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clientAuth="true" &lt;!--双向验证--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLEngine="on" bufferSize="8192"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLEnabled="true"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLProtocol="all"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLCipherSuite="ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLCertificateFile="..\conf\ca\www.crt"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLCertificateKeyFile="..\conf\ca\www.key"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLCACertificateFile="..\conf\ca\ca.crt"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLCACertificatePath="..\conf\ca"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLVerifyDepth="15"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLVerifyClient="require"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p>&nbsp;</p>
<p>4.6.6&nbsp; Squid HTTPS<br />
squid.conf中加上：<br />
https_port 3443 cert=D:/ca/www.crt key=D:/ca/www.key</p>
<p><br />
4.7.6&nbsp; LightTPD HTTPS<br />
首先使用copy命令把 key和crt合并为一个文件，<br />
D:\ca&gt;copy /b www.key+www.crt www.pem</p>
<p>然后配置如下：<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable"<br />
ssl.pemfile = "D:/ca/www.pem"<br />
ssl.ca-file = "D:/ca/ca.crt"<br />
server.name = "www"<br />
server.document-root = "D:/httpsdosc"<br />
server.errorlog = "httpserror.log"<br />
accesslog.filename = "httpsaccess.log"<br />
}<br />
(下面的双向验证没有测试是否可用)<br />
如需启用双向验证，则还需下面的配置参数：<br />
ssl.verify-peer = "enable"<br />
ssl.verify-depth&nbsp; = 1<br />
参考：http://trac.lighttpd.net/trac/ticket/921</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/lizongbo/aggbug/152555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2007-10-13 13:50 <a href="http://www.blogjava.net/lizongbo/archive/2007/10/13/152555.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在smack中实现 Jabber-RPC (XEP-0009)</title><link>http://www.blogjava.net/lizongbo/archive/2006/12/04/85433.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Mon, 04 Dec 2006 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/12/04/85433.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/85433.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/12/04/85433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/85433.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/85433.html</trackback:ping><description><![CDATA[1.首先扩展一个IQ: <br /> 源代码来自: <br /> java代码为: <br /><a target="_blank" href="http://cvs.codehaus.org/viewrep/groovy/groovy/modules/xmlrpc/src/main/uk/co/wilson/smackx/packet/JabberRPC.java">http://cvs.codehaus.org/viewrep/groovy/groovy/modules/xmlrpc/src/main...</a><br /><p>import org.jivesoftware.smack.packet.IQ; <br /></p><p>/** <br />  * @author John Wilson <br />  * <br />  */ <br /></p><p>public class JabberRPC extends IQ { <br /></p><p>        private final String xml; <br /></p><p>        public JabberRPC(final String xml) { <br />                 this.xml = "&lt;query xmlns='jabber:iq:rpc'&gt;\n" + xml + "\n&lt;/query&gt;"; <br />         } <br /></p><p>        public String getChildElementXML() { <br />                 return this.xml; <br />         } <br /></p><div id="qhide_816257" style="display: block;" class="qt">} <br /><br /></div>2.扩展一个IQProvider. <br /> 源代码来自: <br /><a target="_blank" href="http://cvs.codehaus.org/viewrep/groovy/groovy/modules/xmlrpc/src/main/uk/co/wilson/smackx/providers/JabberRPCProvider.java">http://cvs.codehaus.org/viewrep/groovy/groovy/modules/xmlrpc/src/main...</a><br /> java代码为: <br /> import org.jivesoftware.smack.packet.IQ; <br /> import org.jivesoftware.smack.provider.IQProvider; <br /> import org.jivesoftware.smack.util.StringUtils; <br /> import org.xmlpull.v1.XmlPullParser; <br /><p>/** <br />  * @author John Wilson <br />  * <br />  */ <br /></p><p>public class JabberRPCProvider implements IQProvider { <br /></p><p>        public IQ parseIQ(final XmlPullParser parser) throws Exception { <br />                 final StringBuffer buffer = new StringBuffer(); <br /></p><p>                // skip the &lt;query&gt; tag by calling parser.next() <br />                 while (true) { <br />                         switch (parser.next()) { <br />                         case XmlPullParser.TEXT: <br />                                 // We need to escape characters like &amp; and &lt; <br />                                 buffer.append(StringUtils.escapeForXML(parser.getText())); <br />                                 break; <br /></p><p>                        case XmlPullParser.START_TAG: <br />                                 buffer.append('&lt;' + parser.getName() + '&gt;'); <br />                                 break; <br /></p><p>                        case XmlPullParser.END_TAG: <br />                                 if ("query".equals(parser.getName())) { <br />                                         // don't save the &lt;/query&gt; end tag <br />                                         return new JabberRPC(buffer.toString().trim()); <br />                                 } else { <br />                                         buffer.append("&lt;/" + parser.getName() + '&gt;'); <br />                                         break; <br />                                 } <br />                         default: <br />                         } <br />                 } <br />         } <br /></p><div id="qhide_816258" style="display: block;" class="qt">} <br /><br /></div>3.在smack中注册IQProvider . <br /> java代码为: <br /> org.jivesoftware.smack.provider.ProviderManager.addIQProvider("query", <br /> "jabber:iq:rpc", new JabberRPCProvider()); <br /><p>4.smack客户端例子: <br /></p><p>try { <br />                         XMPPConnection con = new XMPPConnection("127.0.0.1", 5222); <br />                         con.login("username", "password"); <br />                         //注册IQProvider <br />                         org.jivesoftware.smack.provider.ProviderManager.addIQProvider( <br />                                         "query", "jabber:iq:rpc", new JabberRPCProvider()); <br />                                         // 监听所有的包 <br />                         con.addPacketListener(new PacketListener() { <br />                                 public void processPacket(Packet packet) { <br />                                         if (packet instanceof org.jivesoftware.smack.packet.IQ) { <br />                                                 org.jivesoftware.smack.packet.IQ iq = <br /> (org.jivesoftware.smack.packet.IQ) packet; <br />                                                 System.out.println("rpc内容为 " + iq.getChildElementXML()); <br />                                         } <br />                                 } <br /></p><p>                        }, new org.jivesoftware.smack.filter.PacketFilter() { <br />                                 public boolean accept(Packet arg0) { <br />                                         return true; <br />                                 } <br /></p><p>                        }); <br />                         con.createChat("xmlrpc.lizongbo.im").sendMessage("测试发送!"); <br />                         JabberRPC jp = new JabberRPC("xmlrpc"); <br />                         jp.setType(org.jivesoftware.smack.packet.IQ.Type.SET); <br />                         jp.setTo("xmlrpc.lizongbo.im"); <br />                         con.sendPacket(jp); <br />                         Thread.sleep(25000); <br />                         con.close(); <br />                 } catch (Exception e) { <br />                         e.printStackTrace(); <br />                 } <br /></p><p>5.服务端回应一个xmlrpc包: <br /> wildfire中通过插件进行响应: <br /> public void processPacket(Packet p) { <br />                 if (p instanceof IQ) { <br />                         IQ iq =(IQ)p; <br />                         IQ niq=IQ.createResultIQ(iq); <br />                           Element responseElement=niq.setChildElement("query", <br /> "jabber:iq:rpc"); <br />                         try { <br />                                 java.util.Vector v=new  java.util.Vector(); <br />                                 v.add("lizongbo  xmpp"); <br />                                 v.add("jabber-rpc lizongbo"); <br />                                 v.add("xep-0009 lizongbo"); <br />                                 XmlRpcResponseProcessor xrrp=new XmlRpcResponseProcessor(); <br />                                 String rs= new String( xrrp.encodeResponse(v, "UTF-8")); <br />                                 org.dom4j.Document re=org.dom4j.DocumentHelper.parseText(rs); <br />                                 responseElement.add(re.getRootElement()); <br />                                 componentManager.sendPacket(this, niq); <br />                         } catch (Exception e) { <br />                                 e.printStackTrace(); <br />                         } <br />                 } <br />         } <br /></p><p>6.客户端输出结果为: <br /></p>rpc内容为 &lt;query xmlns='jabber:iq:rpc'&gt; <br /> &lt;methodResponse&gt;&lt;params&gt;&lt;param&gt;&lt;value&gt;&lt;array&gt;&lt;data&gt;&lt;value&gt;lizongbo <br /> xmpp&lt;/value&gt;&lt;value&gt;jabber-rpc lizongbo&lt;/value&gt;&lt;value&gt;xep-0009 <br /> lizongbo&lt;/value&gt;&lt;/data&gt;&lt;/array&gt;&lt;/value&gt;&lt;/param&gt;&lt;/params&gt;&lt;/methodResponse&gt; <br /> &lt;/query&gt;<br /><br /><img src ="http://www.blogjava.net/lizongbo/aggbug/85433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-12-04 18:16 <a href="http://www.blogjava.net/lizongbo/archive/2006/12/04/85433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用wildfire和linq在一个客户端整合QQ,MSN,Gtalk。</title><link>http://www.blogjava.net/lizongbo/archive/2006/11/29/84241.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 29 Nov 2006 02:17:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/11/29/84241.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/84241.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/11/29/84241.html#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/84241.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/84241.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: wildfire是支持标准即时通讯协议xmpp的服务端，而linq则是支持xmpp的客户端，通过wildfire和linq可以将Gtalk,MSN,QQ,在一个客户端中联合起来，正文是我的操作步骤，有详细抓图过程。&nbsp;&nbsp;<a href='http://www.blogjava.net/lizongbo/archive/2006/11/29/84241.html'>阅读全文</a><img src ="http://www.blogjava.net/lizongbo/aggbug/84241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-11-29 10:17 <a href="http://www.blogjava.net/lizongbo/archive/2006/11/29/84241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>昨天晚上在sf上申请了一个开源项目，今天就被批准了。</title><link>http://www.blogjava.net/lizongbo/archive/2006/10/26/77306.html</link><dc:creator>lizongbo 的编程学习</dc:creator><author>lizongbo 的编程学习</author><pubDate>Wed, 25 Oct 2006 16:54:00 GMT</pubDate><guid>http://www.blogjava.net/lizongbo/archive/2006/10/26/77306.html</guid><wfw:comment>http://www.blogjava.net/lizongbo/comments/77306.html</wfw:comment><comments>http://www.blogjava.net/lizongbo/archive/2006/10/26/77306.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/lizongbo/comments/commentRss/77306.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lizongbo/services/trackbacks/77306.html</trackback:ping><description><![CDATA[在javaeye上看到关于sna的一些讨论，于是对sna很有好奇心，但是google了半天也没有搜索到java webapp中关于sna的开源项目。<br />于是结合和同学交流之后，动手写了几个java文件，通过过滤器对HttpSession的包装，实现java web应用的sna架构。<br />使用 snafilter之后，即使web服务器挂了，只要用户还能访问其它web服务器，则可以照常维持session。<br />代码很简单，但是想到sf上面没有相关的东西，于是昨晚快睡觉的时候就去申请了一个项目，<br />刚才登录sf的时候，没想到今天就已经被批准了：）<br /><br />我把代码整理一下之后，就把它传到sf上来：）<br /><br />这个项目的名称是：snafilter。<br />英文简介是： snafilter is a J2EE servlet filter which wraped HttpSession to supports share nothing architecture 。<br />这句说明是仿照另外一个开源过滤器(<a href="http://pjl-comp-filter.sourceforge.net/">http://pjl-comp-filter.sourceforge.net/</a>)改写的。<br /><!-- google_ad_section_end -->项目的地址是：<br /><a href="http://sourceforge.net/projects/snafilter">http://sourceforge.net/projects/snafilter</a><br /><br />目前实现的snafilter是，sna会话id基于cookie，使用Memcached Server存放sna信息。<br />通过snafilter可以避免session复制的消耗，而且不需要黏性会话的配置，就可以使得多个servlet容器（可以同时包含不同的servlet容器，比如tomcat和resin同时使用）可以结合在一起实现类似failover的效果。<br />基本上可以随时重起tomcat而不影响客户端用户：）<br /><br />在发布第一个版本之后，打算再加入其它的一些特性，欢迎大家交流意见。<br />ps1:我不太会使用sf的一些功能，欢迎大家分享经验。<br />ps2:前段时间向tomcat反映的一个小意见，被新版本的tomcat采纳了，很开心：） <br /><a href="http://tomcat.apache.org/tomcat-5.5-doc/changelog.html">http://tomcat.apache.org/tomcat-5.5-doc/changelog.html</a><br /><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39674">39674</a>: Support JRockit JVM in service.bat script, as suggested by lizongbo. (yoavs) <br />（<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39674">http://issues.apache.org/bugzilla/show_bug.cgi?id=39674</a>）<br /><br />现在深刻体会到我的英语真烂，以后得多锻炼英语了：）<br /><br /><img src ="http://www.blogjava.net/lizongbo/aggbug/77306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lizongbo/" target="_blank">lizongbo 的编程学习</a> 2006-10-26 00:54 <a href="http://www.blogjava.net/lizongbo/archive/2006/10/26/77306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>