<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Marshal</title>
    <description></description>
    <link>http://marshal.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>TP-Link WN322G+ USB无线网卡在ubuntu8.04下的安装</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/212282" style="color:red;">http://marshal.javaeye.com/blog/212282</a>&nbsp;
          发表时间: 2008年07月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span class="t_tag" onclick="tagshow(event)">TP-Link</span>
 WN322G+ 是802.11g（54MB）的USB<span class="t_tag" onclick="tagshow(event)">无线网卡</span>
。<br />
<br />
有windows驱动，但在Linux下安装，却比较麻烦。<br />
<br />
芯片组比较新，是zd1215，<span class="t_tag" onclick="tagshow(event)">ubuntu</span>
 8.04中使用的kernel（2.6.24-16-server）能够识别为zd1211，但是却无法配置使用。<br />
<br />
试过很多办法，想在内核中加入合适的本地驱动，都没有成功。<br />
<br />
只好改用ndiswrapper，见：<a href="http://ndiswrapper.sourceforge.net/" target="_blank">http://ndiswrapper.sourceforge.net/</a>
，该工具可以使用windows的无线网卡驱动程序为<span class="t_tag" onclick="tagshow(event)">linux</span>
提供网卡支持。<br />
<br />
相当于在windows驱动程序的包装器－－包装为Linux下可用的驱动。<br />
<br />
以下安装过程，其他无线网卡应该也适用。</p>
<p>&nbsp;</p>
<p>安装步骤如下：</p>
<p>&nbsp;</p>
<p><strong>插入usb网卡</strong>
，其实现在通过lsusb命令可以看到系统识别了，但是就是不可用，因为芯片的发射部分比驱动新。<br />
<br />
<strong>安装ndiswrapper</strong>
，命令行下输入：</p>
<p>&nbsp;</p>
<pre name="code" class="java">apt-get install ndiswrapper-common ndiswrapper-utils-1.9</pre>
<p>&nbsp;<strong></strong>
</p>
<p><strong>找到usb网卡的windows驱动程序</strong>
，tp-link的驱动在光盘中的相应目录，找到ZD1211BU.INF和ZD11BUXP.SYS两个文件，复制到ubuntu中。<br />
<br />
如果是其他网卡，也要找到相应的inf和sys文件。如果驱动程序是exe或者cab格式，需要用zip或者cabextract工具解开并找到上述文件。<br />
<br />
<strong>安装驱动程序</strong>
，执行：</p>
<p>&nbsp;</p>
<pre name="code" class="java">ndiswrapper -i ZD1211BU.INF</pre>
<p>&nbsp;</p>
<p>其中ZD1211BU.INF是驱动放置在ubuntu下的路径，我这里是在当前路径下。<br />
<br />
<strong>加载驱动程序：</strong>
</p>
<p>&nbsp;</p>
<pre name="code" class="java">root@dell:~/54u# ndiswrapper -l
zd1211bu : driver installed
        device (0ACE:1215) present (alternate driver: zd1211rw)</pre>
<p>&nbsp;</p>
<p><strong><span class="t_tag" onclick="tagshow(event)">设置</span>
系统启动时加载，</strong>
编辑/etc/modules文件，在末尾加入：ndiswrapper<br />
<br />
<strong>执行depmod</strong>
，检查当前加载的模块，如果没有报错，才可以执行下面的命令：</p>
<p>&nbsp;</p>
<pre name="code" class="java">depmod -a</pre>
<p>&nbsp;</p>
<p><strong>加载mdiswrapper模块</strong>
:</p>
<p>&nbsp;</p>
<pre name="code" class="java">modprobe ndiswrapper</pre>
<p>&nbsp;</p>
<p>&nbsp;<strong>加载wlan0:</strong>
</p>
<p>&nbsp;</p>
<pre name="code" class="java">root@dell:~/54u# ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ...

************************************************************************
*
* The update-modules command is deprecated and should not be used!
*
************************************************************************</pre>
<p>&nbsp;</p>
<p><strong>在ubuntu的模块黑名单上加上网卡的名称</strong>
，该黑名单的作用就是不用ubuntu加载，而是自行负责加载。<br />
<br />
网卡名称在执行&ldquo;ndiswrapper -l&rdquo;时的提示中找，这里是&ldquo;zd1211rw&rdquo;，在/etc/modprobe.d/blacklist文件末尾加入&ldquo;blacklist zd1211rw&rdquo;即可。<br />
<br />
<strong>重启ubuntu</strong>
<br />
<br />
查看网卡是否识别，执行iwconfig命令，应该有类似下面的输出：</p>
<p>&nbsp;</p>
<pre name="code" class="java">wlan0     IEEE 802.11g  ESSID:"TP-LINK"  
          Mode:Managed  Frequency:2.437 GHz  Access Point: 00:1D:0F:85:7B:76   
          Bit Rate=54 Mb/s   Tx-Power:-2147483648 dBm   Sensitivity=0/3  
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:4/100  Signal level:-93 dBm  Noise level:-96 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0</pre>
<p>
&nbsp;
</p>
<p><strong>启动网卡</strong>
，输入：</p>
<p>&nbsp;</p>
<pre name="code" class="java">ifconfig wlan0 up</pre>
<p>&nbsp;</p>
<p><strong>为网卡配置ip地址，自动启动和安全方面的配置</strong>
，编辑/etc/network/interfaces，加入：</p>
<p>&nbsp;</p>
<pre name="code" class="java">iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant.conf
auto wlan0</pre>
<p>&nbsp;</p>
<p>我这里是通过DHCP获取，如果静态ip地址，可以在网上参考其他文档。<br />
<br />
如果无线不需要安全设置，可以省略wpa-conf /etc/wpa_supplicant.conf这行，不过这样不安全，我当前使用的是WPA-PSK [TKIP]，没有使用WEP，安全程度不好。<br />
<br />
如果没有配置安全，以下步骤就可以忽略，重启ubuntu，无线网卡应该获得。<br />
<br />
配置wpa安全，创建/etc/wpa_supplicant.conf文件，输入：</p>
<p>&nbsp;</p>
<pre name="code" class="java">network={
        ssid="MarshalsNetwork"
        key_mgmt=WPA-PSK
        proto=WPA
        pairwise=TKIP
        psk=密码的16进制字符串
}</pre>
<p>&nbsp;</p>
<p>psk的获得，需要执行：</p>
<p>&nbsp;</p>
<pre name="code" class="java">root@dell:~# wpa_passphrase MarshalsNetwork your_password
network={
        ssid="MarshalsNetwork"
        #psk="your_password"
        psk=e9eb25bd7410ee3e1a96e138591fa064ee3bdc305eac25f8b41f315177932eb7
}</pre>
<p>&nbsp;</p>
<p>将输出的psk部分，复制到wpa_supplicant.conf文件中psk属性中即可。<br />
<br />
重启ubuntu，无线网卡就应该可以工作了。<br />
<br />
上述步骤，在我另外一块usb无线网卡：水星(Mercury)MW54U下也测试成功，发现和TP-Link WN322G+使用的完全相同的芯片，驱动程序也一样可以互换。<br />
<br />
这种方法的缺点（这也是我开始不打算使用的原因）是，占用CPU较高，本来USB网卡比PCI网卡就消耗CPU，通过包装器ndiswrapper做翻译就更消耗资源。<br />
<br />
在Piii 866环境下，长期占用5%~10%，在dell d600的迅驰1.4G CPU下，长期占用1%~3%。<br />
<br />
<strong>初步测试了一下网速</strong>
，无线路由就在旁边的情况下：<br />
<br />
从t61(无线)到dell(以太网线)通过<span class="t_tag" onclick="tagshow(event)">SSH</span>
上传71M的JDK6到ubuntu上，测试数据为1425.5kB/s，下载速度更快一些，测试数据为1573.0kB/s。<br />
<br />
从t61(无线)到server(无线tp-link)通过SSH上传71M的JDK6到ubuntu上，测试数据为930.0kB/s，下载速度更快一些，测试数据为1240.8kB/s。<br />
<br />
从t61(无线)到dell(无线水星)通过SSH上传71M的JDK6到ubuntu上，测试数据为732.9kB/s，下载速度更快一些，测试数据为1021.8kB/s。<br />
<br />
测试不严格，没有做交叉测试，初步看来，tp-link应该比水星无线网卡快点儿。</p>
<p>&nbsp;</p>
<p>本文最早由本人（marshal@javaeye）发表在：<span style="white-space: pre;"><a href="http://marshal.easymorse.com/blog/archives/72">http://marshal.easymorse.com</a></span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/212282#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 07 Jul 2008 12:21:24 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/212282</link>
        <guid>http://marshal.javaeye.com/blog/212282</guid>
      </item>
          <item>
        <title>解决问题记录：vista sp1环境下subclipse的使用问题</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/187602" style="color:red;">http://marshal.javaeye.com/blog/187602</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>这回解决的是自己的问题。<br /><br />这两天有点儿时间，将vista更新为sp1了。<br /><br />感觉速度是快了点儿，而且从硬盘往usb硬盘上复制文件速度明显快了。<br /><br />和<span class="t_tag" onclick="tagshow(event)">java</span> 相关的环境也重新安装。<br /><br />subversion安装了1.4.6版本，最新的。<br /><br />java安装了最新的update10 beta版本。<br /><br /><span class="t_tag" onclick="tagshow(event)">eclipse</span> 没有更新的版本，还是3.3.2。<br /><br />另外，subclipse（svn的eclipse插件）还是1.2.4。<br /><br /><span class="t_tag" onclick="tagshow(event)">maven</span> 更换为2.0.9版本。<br /><br />都是小版本更新，认为应该没有什么大的问题。<br /><br />结果，问题来了。<br /><br />在导入maven生成的project的时候，eclipse崩溃了。<br /><br />见图：</p>
<p><img src="../../../upload/attachment/22135/aec33311-b6ad-33de-a580-c086c2897310.png" height="788" alt="" width="499" /><br /><br />其实当时安装的jdk是1.6.0_05，到sun网站下了最新的release版本，1.6.0_06问题依旧。<br /><br />当时怀疑是sp1闹得，所以怀疑是jdk版本对vista sp1支持的不好。<br /><br />在这个思路下，再次更换1.6.0_10 beta版本（对这个版本的更新很感兴趣，稍后找时间研究），问题依旧。<br /><br />这可就奇怪了，删除eclipse重新解压缩安装，这时没有安装subclipse，问题消失了。<br /><br />看来和subclipse有关，再次安装subclipse，问题又来了，证明找到了问题。<br /><br />分析了一下，可能是subversion更新到1.4.6闹得。<br /><br />因为subclipse默认通过jni使用subversion的代码。<br /><br />而subclipse1.2.4以前和subversion1.4.5配合很好，估计是subclipse和subvertion版本不匹配。<br /><br />怎么验证问题是否分析的正确呢？<br /><br />对了，subclipse还可以利用自身自带的java实现的svn客户端，见图：</p>
<div class="t_attach" id="attach_26_menu" style="position: absolute; display: none;"><img class="absmiddle" src="http://www.easymorse.com/bbs/images/attachicons/image.gif" border="0" alt="" /> <a href="http://www.easymorse.com/bbs/attachment.php?aid=26&amp;nothumb=yes" target="_blank"><strong>svn.png</strong> </a>(51.96 KB)<br />
<div class="t_smallfont">2008-4-28 16:17</div>
</div>
<p><span id="attach_26" onmouseover="showMenu(this.id, 0, 1)" style="position: absolute; left: 213px; top: 2082px;"><img src="http://www.easymorse.com/bbs/images/default/attachimg.gif" border="0" alt="" /> &nbsp; </span><img src="../../../upload/attachment/22133/7db6cbb0-eebd-32f3-beec-7d379ee90b84.png" height="513" alt="" width="531" /> <br /><br />将默认jni方式改为上图的方式。<br /><br />再次导入项目，问题解决。</p>
<p>&nbsp;</p>
<p><span style="font-family: Arial; line-height: 18px;">本文最早由本人（marshal@javaeye）发表在：<span style="white-space: pre;"><a href="http://marshal.easymorse.com">http://marshal.easymorse.com</a></span></span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/187602#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 16:24:07 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/187602</link>
        <guid>http://marshal.javaeye.com/blog/187602</guid>
      </item>
          <item>
        <title>NetMeeting在vista上的使用</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/161009" style="color:red;">http://marshal.javaeye.com/blog/161009</a>&nbsp;
          发表时间: 2008年02月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          见本人在sohu上的博客：<br /><br /><a href="http://timelive.blog.sohu.com/78128489.html" target="_blank">http://timelive.blog.sohu.com/78128489.html</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/161009#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 01 Feb 2008 15:45:04 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/161009</link>
        <guid>http://marshal.javaeye.com/blog/161009</guid>
      </item>
          <item>
        <title>Flash视频播放器</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/153479" style="color:red;">http://marshal.javaeye.com/blog/153479</a>&nbsp;
          发表时间: 2008年01月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          通过Flash和ActionScript编写的播放器，用来播放FLV文件。<br /><br />网上有一些写好的播放器代码。<br /><br /><span style="font-size: medium">ruochi播放器</span><br /><br />见<a href="http://www.ruochi.com" target="_blank">http://www.ruochi.com</a><br /><br />基本功能都有。<br /><br />可以下载播放器和示例。<br /><br />见<a href="http://www.ruochi.com/main/post/24.html" target="_blank">http://www.ruochi.com/main/post/24.html</a><br /><br />不过，目前不支持RTMP协议。<br /><br /><span style="font-size: medium">JW MEDIA PLAYER</span><br /><br />这个播放器功能比较齐全。<br /><br />网址：http://www.jeroenwijering.com/?item=JW_Media_Player<br /><br />当前版本：3.13<br /><br />中文的帮助文档：http://www.ajun.org/show-29-1.html<br /><br />支持RTMP协议。
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/153479#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 06 Jan 2008 14:16:27 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/153479</link>
        <guid>http://marshal.javaeye.com/blog/153479</guid>
      </item>
          <item>
        <title>安装和配置Windows下SVN开发环境</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/153131" style="color:red;">http://marshal.javaeye.com/blog/153131</a>&nbsp;
          发表时间: 2008年01月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong><span style="font-size: large">简介</span></strong><br /><br />本文介绍在WindowsXP（在Windows2003下应该也可以）安装SVN(subversion)及其相关集成工具。<br /><br />实现如下功能：<br /><br /><ul><li>通过http访问版本控制器</li><li>通过Web应用程序设置用户认证和授权</li></ul><br /><br /><strong><span style="font-size: large">基本步骤</span></strong><br /><br /><strong><span style="font-size: medium">安装Apache Http Server</span></strong><br /><br />下载最新版本的Apache Http Server Windows安装包。<br /><br />下载地址：<a href="http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.2.6-win32-x86-no_ssl.msi" target="_blank">http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.2.6-win32-x86-no_ssl.msi</a><br /><br />通过安装向导默认安装即可。<br /><br /><strong><em>需要注意的是：</em></strong> Network domain，Server name和Email address都必须填写适当的内容。<br /><br />安装完成后，通过http://localhost访问成功即可。<br /><br /><strong><span style="font-size: medium">安装SVN</span></strong><br /><br />下载最新版本的Subversion安装包。<br /><br />下载地址：<a href="http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe" target="_blank">http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe</a><br /><br />默认安装即可。<br /><br />检查是否安装成功，在命令行中，输入：<br /><br /><pre name="code" class="sh">
svn --version
</pre><br /><br />显示版本号既成功。<br /><br /><strong><span style="font-size: medium">创建一个svn repository</span></strong><br /><br />创建svn repository（仓库）的根目录，比如<em>e:/svn</em>。<br /><br />在命令行下，进入<em>e:/svn</em>。<br /><br />输入如下命令：<br /><br /><pre name="code" class="sh">
svnadmin create documents
</pre><br /><br /><strong><span style="font-size: medium">升级svn支持apache2.2</span></strong><br /><br />svn默认1.4.5版本，是基于apache2.0编译的。<br /><br />使用Microsoft Visual C++ 6.0。<br /><br />apache2.2版本，基于更新的C++.net环境。<br /><br />下载svn1.4.5针对apache2.2的分发包（没有安装包，所以麻烦一点）。<br /><br />地址是：<a href="http://subversion.tigris.org/downloads/1.4.5-win32/apache-2.2/svn-win32-1.4.5.zip" target="_blank">http://subversion.tigris.org/downloads/1.4.5-win32/apache-2.2/svn-win32-1.4.5.zip</a><br /><br />下载后，解压缩，并覆盖安装的svn目录即可。<br /><br /><strong><span style="font-size: medium">SVN与Apache的集成</span></strong><br /><br />将安装后svn的bin目录下所有后缀是so的文件复制到apache的modules目录下。<br /><br />将安装后svn的bin目录下所有后缀是dll的文件复制到apache的bin目录下，<em>如果提示是否覆盖，一定注意不要覆盖apache目录下的dll，主要是apr方面的dll</em>。<br /><br />编辑<em>apache/conf/httpd.conf</em>文件：<br /><br />找到配置文件中的LoadModule dav_module modules/mod_dav.so和LoadModule dav_fs_module modules/mod_dav_fs.so，将该两行前的#号去掉；<br /><br />在上述内容后加入：<br /><pre name="code" class="sh">
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
</pre><br /><br />在配置文件末尾添加如下内容：<br /><br /><pre name="code" class="sh">
&lt;Location /svn>
&lt;Location /svn>
DAV svn
SVNParentPath e:/svn

AuthType Basic
AuthName "Subversion Reporsitory"
AuthUserFile "D:/Program Files/Apache Software Foundation/Apache2.2/conf/svnpasswd"


AuthzSVNAccessFile "D:/Program Files/Apache Software Foundation/Apache2.2/conf/svnauthz"
Require valid-user 
&lt;/Location>
</pre><br /><br />重启apache即可。<br /><br />创建svn用户，在命令行中，进入<em>D:/rogram Files/Apache Software Foundation/Apache2.2/bin</em>目录，输入：<br /><br /><pre name="code" class="sh">
htpasswd -c ../conf/svnpasswd marshal
</pre><br /><br />创建password文件，并且创建marshal用户。<br /><br />在<em>conf</em>目录下创建<em>svnauthz</em>用于授权，以下是简单的文件内容：<br /><pre name="code" class="sh">
[/]
marshal = rw
</pre><br /><br />上述文件为刚创建的<em>marshal</em>用户设置了对所有目录的读写的权限。<br /><br />重启apache，并访问<a href="http://localhost/svn/documents" target="_blank">http://localhost/svn/documents</a><br /><br />如有问题，通过<em>apache/logs/error.log</em>检查问题。<br /><br /><br /><strong><span style="font-size: medium">安装SVNManager</span></strong><br /><br />安装svnmanager，用于通过web的方式：<br /><br /><ul><li>创建用户和修改密码</li><li>创建和修改用户权限</li><li>创建用户组和修改用户组的权限</li><li>创建SVN库</li></ul><br /><br />安装svnmanager，需要安装PHP环境和MySQL。<br /><br />安装php环境，可参考：<a href="http://marshal.javaeye.com/blog/147139" target="_blank">http://marshal.javaeye.com/blog/147139</a>或者其他文档。<br /><br />安装MySQL，本文使用MySQL 5.0.45安装包默认安装即可。<br /><br />为svnmanager创建数据库：<br /><br /><pre name="code" class="shell">
create database svnmanager CHARACTER SET utf8;
</pre><br /><br />svnmanager网址：<a href="http://svnmanager.sourceforge.net/" target="_blank">http://svnmanager.sourceforge.net/</a><br /><br />svn需要PHP支持PEAR。<br /><br />进入php的<em>PEAR</em>目录，命令行输入：<br /><br /><pre name="code" class="sh">
php go-pear.phar
</pre><br /><br />出现提示的时候，回车即可。<br /><br />svn需要VersionControl_SVN，这需要通过PEAR安装：<br /><br /><pre name="code" class="sh">
pear install -a VersionControl_SVN-0.3.1
</pre><br /><br />当前svnmanager版本是<em>1.03</em>。<br /><br />另外，需要修改php.ini文件，取消下列行的注释：<br /><br /><pre name="code" class="sh">
extension = php_mbstring.dll
extension = php_mysql.dll
extension = php_gb2.dll
extension = php_mysqli.dll
extension = php_pdo.dll
extension = php_pdo_mysql.dll
</pre><br /><br />下载svnmanager，路径为：<a href="http://sourceforge.net/project/showfiles.php?group_id=135933" target="_blank">http://sourceforge.net/project/showfiles.php?group_id=135933</a><br /><br />在<em>apache/htdocs</em>目录下，建一个目录<em>svnmanager</em>。<br /><br />将下载的文件解压缩到上述的<em>svnmanager</em>中。<br /><br />将<em>svnmanager</em>目录中的config.php.win改名为<em>config.php</em>。<br /><br />修改文件中的内容如下：<br /><br /><pre name="code" class="PHP">
&lt;?php
//
//  SVNManager config.php file for Windows based servers
//

$htpassword_cmd     = "D:\\Program Files\\Apache Software Foundation\\Apache2.2\\bin\\htpasswd";
$svn_cmd            = "D:\\Program Files\\Subversion\\bin\\svn";
$svnadmin_cmd       = "D:\\Program Files\\Subversion\\bin\\svnadmin";

//Subversion locations
$svn_repos_loc 			= 	"e:\\svn";
$svn_passwd_file 		= 	"D:\\Program Files\\Apache Software Foundation\\Apache2.2\\conf\\svnpasswd";
$svn_access_file 		= 	"D:\\Program Files\\Apache Software Foundation\\Apache2.2\\conf\\svnauthz";

//If the following is set, removing a repository will cause it to be
//moved to this location rather than being deleted.
$svn_trash_loc			=	"";

// If $svnserve_user_file is defined, then SVNManager will create a
// user/password file suitable for use with SVNSERVE
//
// When not set, this feature isn't enabled.
//
// Warning: When enabled, this mode requires that passwords are stored in the database readable!
// 
// Note: When is feature is enabled later, passwords need to be re-set before they are included in
//  	 the svnserve user file.
//
//$svnserve_user_file		=	"c:\\svn\\svnserve_passwd_file"; 
$svnserve_user_file = "";

//SMTP Server for outgoing mail
$smtp_server 			= 	"smtp.mailserver.net";


//Data Source Name (only tested with mysql and sqlite databases!!)
//
//Either:
// 
//Use the createtables.sql script to build the tables in a mysql database
// 
// or
//
//An empty SQLite database will automatically be generated with the first
//startup! 
//
//Please note that if you change the directory for a SQLite database that you
//choose a location that is not accessible via web!!
//

$dsn = "mysql://root:password@localhost/svnmanager";

//$dsn = "mysql://svnmanager:svnmgmpw@localhost/svnmanager";
//The following location is not readable from internet by means of an .htaccess file
//$dsn = "sqlite://svnmanager\\svnmanager.db";						

//Administrator account
//
//This account can be used to create a first administrator user.
//When an administrator user is added, this account doesn't work
//anymore!
//
$admin_name          = "admin";
$admin_temp_password = "admin";

// If $post_create_script is defined, then this script / command will be
// executed after a repository is created. 
// When the script/command is executed the one and only parameter will be
// the physical location of the repository.
// This might copy a default set of hooks or config files
//
// $post_create_script = "svn-update-config-files.bat";

?>
</pre><br /><br />重启apache，然后通过<a href="http://localhost/svnmanager" target="_blank">http://localhost/svnmanager</a>访问。<br /><br />用户名/密码都是：admin<br /><br />创建第一个用户，通过user admin链接，点击add按钮。<br /><br />注意构选admin复选项。<br /><br />通过刚刚创建的用户登录，就可以看到各种功能的链接。<br /><br />以后就可以通过该界面创建用户和权限了，而不需要再通过svn和apache的命令和配置文件了。<br /><br />另外，可下载中文汉化包，见：<a href="http://bbs.iusesvn.com/viewthread.php?tid=2122" target="_blank">http://bbs.iusesvn.com/viewthread.php?tid=2122</a><br /><br />本文最早由本人（marshal@javaeye）发表在：http://marshal.easymorse.com/blog/archives/161
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/153131#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 04 Jan 2008 17:08:53 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/153131</link>
        <guid>http://marshal.javaeye.com/blog/153131</guid>
      </item>
          <item>
        <title>搭建适合开发人员的Oracle10g环境</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/151367" style="color:red;">http://marshal.javaeye.com/blog/151367</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          对于开发人员来说，使用Oracle10g企业版本过于消耗本机资源。<br /><br />这里介绍使用10g的express版本，并且调整参数，减少对系统资源的使用。<br /><br />而开发使用到的功能与Oracle10g相同。<br /><br />下载Oracle10g Express版本，<a href="http://www.oracle.com/technology/software/products/database/xe/index.html" target="_blank">http://www.oracle.com/technology/software/products/database/xe/index.html</a><br /><br />通过安装向导默认安装即可。<br /><br />安装完毕后，在命令行中输入：<br /><br /><pre name="code" class="java">sqlplus sys as sysdba</pre><br /><br />通过管理员账户和身份登录。<br /><br />在sqlplus命令行界面中，输入：<br /><br /><pre name="code" class="java">show parameter sga_target;</pre><br /><br />查看当前SGA的共享全局内存，显示572M。<br /><br />修改SGA可以减少Oracle对内存的消耗，继续输入：<br /><br /><pre name="code" class="java">alter system set sga_target=150m;</pre><br /><br />将该内存减少到150MB。<br /><br />另外，需要修改连接数，否则通过程序频繁使用数据库时会报告<em>TNS监听程序</em>的错误。<br /><br />继续输入：<br /><br /><pre name="code" class="java">ALTER SYSTEM SET PROCESSES=200 SCOPE=spfile;</pre><br /><br />最后，需要重启数据库，使上述设置生效。<br /><br />关闭数据库：<br /><br /><pre name="code" class="java">
shutdown immediate
</pre><br /><br />提示数据库关闭后，在sqlplus中继续输入：<br /><br /><pre name="code" class="java">
startup
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/151367#comments" style="color:red;">已有 <strong>3</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 23:08:19 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/151367</link>
        <guid>http://marshal.javaeye.com/blog/151367</guid>
      </item>
          <item>
        <title>对链接中的特殊字符编码</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/149121" style="color:red;">http://marshal.javaeye.com/blog/149121</a>&nbsp;
          发表时间: 2007年12月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在JSP/Servle开发中，比如出现这样的场景：<br /><br />在页面或者Servlet中显示的链接有特殊字符（比如%）或者中文。<br /><br />JSP可以通过JSTL提供的c:url标签处理编码。<br /><br />另外，JSP小脚本和Servlet还可以使用<em>java.net.URLEncoder</em>类的<em>encode</em>方法。<br /><br />下面是在JSP中的代码示例，在Servlet中使用类似：<br /><br /><pre name="code" class="java">
&lt;%
String value="中文";

String url="http://www.baidu.com/s?wd="+URLEncoder.encode(value);
%>
&lt;a href='&lt;%=url %>'>点击&lt;/a>
</pre><br /><br />这个例子中的链接，是查询baidu中<em>中文</em>关键字的结果。<br /><br />该encode方法在javadoc中提示<em>已过时</em>。<br /><br />可以使用它的替代方法：<br /><br /><pre name="code" class="java">
String url="http://www.baidu.com/s?wd="+URLEncoder.encode(value,"GBK");
</pre><br /><br />本文最早由本人（marshal@javaeye）发表在：http://marshal.easymorse.com/blog/archives/164
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/149121#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 18 Dec 2007 14:27:29 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/149121</link>
        <guid>http://marshal.javaeye.com/blog/149121</guid>
      </item>
          <item>
        <title>在Maven中使用jetty6</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/148673" style="color:red;">http://marshal.javaeye.com/blog/148673</a>&nbsp;
          发表时间: 2007年12月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
使用Maven开发web应用，经常使用下面的命令通过jetty发布应用程序：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn&nbsp;jetty:run&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
默认情况下，使用的是jetty5版本。<br />
<br />
也就是Servlet2.4/JSP2.0的标准。<br />
<br />
如果需要使用Servlet2.5/JSP2.1标准编写代码。<br />
<br />
需要做如下处理。<br />
<br />
<h2>处理办法</h2>
<br />
<h3>第一种办法</h3>
在命令行输入：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn&nbsp;org.mortbay.jetty:maven-jetty-plugin:run&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
<h3>第二种办法</h3>
<br />
修改pom.xml文件，加入如下内容：<br />
<br />
<plugins></plugins>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">plugins</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">plugin</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">groupId</span><span class="tag">&gt;</span><span>org.mortbay.jetty</span><span class="tag">&lt;/</span><span class="tag-name">groupId</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">artifactId</span><span class="tag">&gt;</span><span>maven-jetty-plugin</span><span class="tag">&lt;/</span><span class="tag-name">artifactId</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">version</span><span class="tag">&gt;</span><span>6.1.6</span><span class="tag">&lt;/</span><span class="tag-name">version</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">plugin</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">plugins</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/148673#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 16 Dec 2007 12:54:50 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/148673</link>
        <guid>http://marshal.javaeye.com/blog/148673</guid>
      </item>
          <item>
        <title>建立PHP开发环境</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/147139" style="color:red;">http://marshal.javaeye.com/blog/147139</a>&nbsp;
          发表时间: 2007年12月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <em>这里只介绍Windows下的安装和配置。<br />
<br />
</em>
<h2>安装Apache</h2>
<br />
<a href="http://download.nextag.com/apache/httpd/binaries/win32/">download.nextag.com/apache/httpd/binaries/win32/</a>, 下载最新的windows版本, 当前是2.2.6<br />
<br />
默认安装, 要求域名(localhost)/地址(localhost)/邮箱必填, 否则无法启动apache.<br />
<br />
访问: http://localhost/, 确认安装是否成功.<br />
<br />
<h2>安装PHP</h2>
<strong>基本安装</strong><br />
<br />
<a href="http://www.php.net/downloads.php" target="_blank">http://www.php.net/downloads.php</a>, 下载最新版本的PHP, 当前是5.2.5<br />
<br />
解压缩到c:/php目录下.<br />
<br />
将c:/php加入windows环境变量Path.<br />
<br />
将c:/php/php.ini-recommended改名为c:/php/php.ini<br />
<br />
<strong>安装PHP扩展<br />
<br />
</strong>php.ini修改:<br />
<div class="dp-highlighter">
<div class="bar"> </div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>extension_dir = </span><span class="string">&quot;C:/php/ext&quot;</span><span>  </span></span></li>
</ol>
</div>
<br />
<strong>复制dll到windows目录<br />
<br />
</strong>增加php目录下10个dll库文件到windows\system32目录：<br />
<ul>
    <li>ssleay32.dll</li>
    <li>fdftk.dll</li>
    <li>fribidi.dll</li>
    <li>gds32.dll</li>
    <li>libeay32.dll</li>
    <li>libmcrypt.dll</li>
    <li>libmhash.dll</li>
    <li>libmysql.dll</li>
    <li>libswish-e.dll</li>
    <li>msql.dll</li>
</ul>
<strong>设置报错输出<br />
<br />
</strong>允许显示报错，用于开发环境，修改php.ini：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>display_errors = On  </span></span></li>
</ol>
</div>
<br />
<h2>集成Apache和PHP</h2>
<br />
找到Apache2.2\conf\httpd.conf文件, 文件尾部加入:<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>LoadModule php5_module c:/php/php5apache2_2.dll  </span></span></li>
    <li class=""><span>AddType application/x-httpd-php .php  </span></li>
    <li class="alt"><span>  </span></li>
    <li class=""><span># configure the path to php.ini  </span></li>
    <li class="alt"><span>PHPIniDir C:/php  </span></li>
</ol>
</div>
<br />
<br />
另外，修改（加入index.php作为默认首页）：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span><ifmodule dir_module="">  </ifmodule></span></span></li>
    <li class=""><span>DirectoryIndex index.html index.php  </span></li>
    <li class="alt"><span>  </span></li>
</ol>
</div>
<br />
重新启动Apache.<br />
<br />
<strong>测试安装是否成功:<br />
<br />
</strong>在Apache2.2\htdocs目录下, 编写test.php文件<br />
<span><span></span>
<div class="dp-highlighter">
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span></span></span></li>
    <li class="alt"><span><span>  <br />
    </span></span></li>
    <li class="alt"><span><span><br />
    </span></span></li>
</ol>
</div>
</div>
<br />
通过浏览器访问<a href="http://localhost/test.php">localhost/test.php</a>，应该显示php的信息。
<h2>安装PHP开发环境</h2>
<br />
<strong>安装和配置PDT<br />
<br />
</strong>下载PDT: <a href="http://download.eclipse.org/tools/pdt/downloads/index.php">download.eclipse.org/tools/pdt/downloads/index.php</a>, 选择最新版本, 当前版本是1.0. <br />
<br />
PDT是Eclipse的插件。<br />
<br />
选择pdt-all-in-one版本, 否则需要另外下载eclipse和相关插件, 并手工集成.<br />
<br />
设置utf-8编码。<br />
<br />
<strong>安装debug环境<br />
<br />
</strong>Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具)<br />
<br />
下载xdebug的dll文件，<a href="http://xdebug.org/link.php?url=xdebug202-52-win">xdebug.org/link.php</a><br />
<br />
当前版本：2.0.2<br />
<br />
复制''php_xdebug-2.0.2-5.2.5.dll''到PHP目录下，如''C:\php''<br />
<br />
修改php.ini文件，加入如下内容：<br />
<br />
<div class="dp-highlighter">
<div class="bar"> </div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>xdebug.remote_enable = </span><span class="number">1</span><span>  </span></span></li>
    <li class=""><span>xdebug_remote_host = <span class="string">&quot;localhost&quot;</span><span>  </span></span></li>
    <li class="alt"><span>xdebug.remote_port = <span class="number">9000</span><span>  </span></span></li>
    <li class=""><span>xdebug.remote_handler = <span class="string">&quot;dbgp&quot;</span><span>  </span></span></li>
    <li class="alt"><span>zend_extension_ts=.\php_xdebug-<span class="number">2.0</span><span>.</span><span class="number">2</span><span>-</span><span class="number">5.2</span><span>.</span><span class="number">5</span><span>.dll  </span></span></li>
</ol>
</div>
<br />
重启Apache，访问上面编写的test.php，查看xdebug是否加载。<br />
<br />
<strong>设置PDT下的debug环境<br />
<br />
</strong>设置php servers，主要是设置apache发布的路径<br />
<br />
设置php executables中的php路径和debug类型<br />
<br />
设置debug项和launching子项</span>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/147139#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 09 Dec 2007 23:53:13 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/147139</link>
        <guid>http://marshal.javaeye.com/blog/147139</guid>
      </item>
          <item>
        <title>MoinMoin的基本用法</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/146015" style="color:red;">http://marshal.javaeye.com/blog/146015</a>&nbsp;
          发表时间: 2007年12月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>注册和修改用户配置</h2>
<br />
用户注册完毕需要点击'清除此提示信息'链接, 否则可能不能成功注册. <br />
<br />
用户的配置文件在moin-desktop\wiki\data\user目录下, 以纯文本方式保存, 可以手工修改.<br />
<br />
<h2>修改网站名称</h2>
<br />
在moin-desktop/wikiconfig.py中, 修改:<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;Config(DefaultConfig):&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;sitename&nbsp;=&nbsp;u<span class="string">&quot;Marshal\u7684\u77E5\u8BC6\u7BA1\u7406&quot;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
如果是中文，需要通过\u的编码转换。<br />
<br />
以上内容前加u&quot;...&quot;, 表示是unicode编码, '\u7684\u77E5\u8BC6\u7BA1\u7406'是中文<strong><em>的知识管理</em></strong>, 需要自行解决，比如使用java的native2ascii<br />
<br />
<h2>修改提交次数的限制</h2>
<br />
wikiconfig.py中, 增加:<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-py" start="1">
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;Config(DefaultConfig):&nbsp;&nbsp;</span></span></li>
    <li class=""><span>...&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;surge_action_limits&nbsp;=&nbsp;{&nbsp;'default':&nbsp;(100,&nbsp;1)&nbsp;}&nbsp;<span class="comment">#&nbsp;max.&nbsp;100&nbsp;requests&nbsp;in&nbsp;1&nbsp;second</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;surge_lockout_time&nbsp;=&nbsp;60&nbsp;<span class="comment">#&nbsp;secs&nbsp;you&nbsp;get&nbsp;locked&nbsp;out&nbsp;when&nbsp;you&nbsp;ignore&nbsp;warnings</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>...&nbsp;&nbsp;</span></li>
</ol>
</div>
以上配置提交的限制, 默认情况下提交多次后会提示要间隔一段时间才能再提交.<br />
<br />
<h2>本地化配置</h2>
<br />
<strong>系统页面和帮助的中文化</strong><br />
<br />
访问: <a href="http://localhost:wiki_port/SystemPagesSetup">localhost:wiki_port/SystemPagesSetup</a>, 其中wiki_port是moinmoin的端口号, 如果没有自行配置, 默认是8080.<br />
<br />
在SimplifiedChinese.zip行上, 点击'<strong><em>安装</em></strong>'链接即可, 这时moinmoin的界面和帮助已经中文化.<br />
<br />
<strong>时区的修改<br />
<br />
</strong>moinmoin默认使用格林威治标准时间, 国内市区是东8区, 比标准时间早8小时(+8). <br />
<br />
如果不修改, 时间戳很别扭. <br />
<br />
修改办法, 用户登录后点击'用户设置'链接, 在时区选择....[+08:00]的选项<br />
<br />
<h2>定制页面风格</h2>
<br />
我一般选用modern风格, 并在此基础上修改了css样式, 在moin-desktop\wiki\htdocs\modern\css目录下.<br />
<br />
<h2>定制首页</h2>
<br />
本人定制首页:<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>||</span><span class="string">&quot;100%&quot;</span><span>&gt;||&nbsp;&nbsp;</span></span></li>
    <li class=""><span>||&lt;^<span class="number">25</span><span>%&gt;&nbsp;[[Include(工作文档)]]&nbsp;||&lt;^</span><span class="number">30</span><span>%&gt;&nbsp;&nbsp;[[Include(生活文档)]]&nbsp;[[BR]]&nbsp;[[Include(学习文档)]]||&lt;^&gt;&nbsp;[[Include(任务导航)]]&nbsp;[[BR]]&nbsp;[[Include(备忘录)]]||&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
<br />
第一行表示要使用整个浏览器宽度. <br />
<br />
第二行是页面的布局, 其中工作文档, 生活文档...都是站内连接 <br />
<br />
Incluede是moinmoin的宏, 表示包含页面. <br />
<br />
具体解释, 参见moinmoin的帮助文档有关宏的部分.<br />
<br />
<h2>注意事项</h2>
<br />
尽量使用英文文件和目录名称, 中文文件名有时因为编码过长而出错
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/146015#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 04 Dec 2007 21:35:14 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/146015</link>
        <guid>http://marshal.javaeye.com/blog/146015</guid>
      </item>
          <item>
        <title>在Eclipse中使用Maven插件</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/144335" style="color:red;">http://marshal.javaeye.com/blog/144335</a>&nbsp;
          发表时间: 2007年11月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
本文介绍如何在Eclipse中通过maven插件编写java项目和web项目。<br />
<br />
<h2>安装Maven</h2>
<br />
下载Maven最新版本，见：<a href="http://maven.apache.org/download.html">maven.apache.org/download.html</a><br />
<br />
当前版本2.0.7。<br />
<br />
解压缩下载的文件, 将其中的bin目录设置到windows Path环境变量中.<br />
<br />
测试安装是否成功：在命令行中输入<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn -version  </span></span></li>
</ol>
</div>
<br />
<h2>安装Maven插件</h2>
<br />
安装Eclipse的Maven插件M2Eclipse。<br />
<br />
本文使用：<br />
<ul>
    <li>JDK：SUN JDK1.6.0_03</li>
    <li>Eclipse：3.3.1.1</li>
</ul>
M2Eclipse插件网址：<a href="http://m2eclipse.codehaus.org/update/">m2eclipse.codehaus.org</a><br />
<br />
通过Eclipse在线更新网址：<a href="http://m2eclipse.codehaus.org/update/">m2eclipse.codehaus.org/update/</a><br />
<br />
具体安装步骤见插件网址。<br />
<br />
为Maven设置Classpath变量，设置java&gt;build path&gt;classpath variables<br />
<br />
通过<strong><em>new...按钮</em></strong>增加一个变量条目：<br />
<ul>
    <li>name：M2_REPO</li>
    <li>path：C:/Documents and Settings/<strong><em>zhangsan</em></strong>/.m2/repository，zhangsan是你的xp中的用户名<br />
    </li>
</ul>
<h2>创建Maven的Java项目并导入到Eclipse中</h2>
<br />
在命令行中，进入eclipse的workspace目录下，输入：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn archetype:create -DgroupId=<strong><em>org.marshal</em></strong> -DartifactId=<em><strong>helloworld</strong></em>  </span></span></li>
</ol>
</div>
<br />
其中：<br />
<ul>
    <li><span><span><strong><em>org.marshal</em></strong>是组织名称，另外maven自动生成了源代码的包org/marshal</span></span></li>
    <li><span><span><em><strong>helloworld</strong></em>是项目名称</span></span></li>
</ul>
运行命令后，workspace目录下生成helloworld目录，并生成：<br />
<ul>
    <li>项目构建文件: pom.xml</li>
    <li>代码框架：src\main\java\org\marshal\helloworld\App.java</li>
    <li>测试代码：src\test\java\org\marshal\helloworld\AppTest.java</li>
</ul>
这时可以通过文本编辑器修改App.java源代码，并通过如下命令编译打包：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>maven pacage  </span></span></li>
</ol>
</div>
<br />
编写AppTest.java后，可通过下面命令运行JUnit测试：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn test  </span></span></li>
</ol>
</div>
<br />
通过如下命令运行main方法：<br />
<br />
<div class="dp-highlighter">
<div class="bar"> </div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>java -cp target\helloworld-</span><span class="number">1.0</span><span>-SNAPSHOT.jar org.marshal.App  </span></span></li>
</ol>
</div>
<br />
不过，还是最好通过IDE工具编写和调试代码，这需要将maven项目导入为Eclipse项目。<br />
<br />
在helloworld目录下，运行下面命令，使项目支持eclipse：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn eclipse:eclipse  </span></span></li>
</ol>
</div>
<br />
然后，打开Eclipse，通过File&gt;import...，general&gt;existing projects into workspace，将helloworld导入。<br />
<br />
导入后，如下图：<br />
<br />
<a href="http://marshal.javaeye.com/topics/download/ffd4abf7-b4fd-4a97-ba91-3ede6c142c69"><img src="http://marshal.javaeye.com/topics/download/ffd4abf7-b4fd-4a97-ba91-3ede6c142c69" alt="" /></a><br />
<br />
<br />
<h2>创建maven Web项目并导入到Eclipse中</h2>
如果需要创建maven的web项目，在eclipse的workspace目录下，运行：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn archetype:create -DgroupId=org.marshal -DartifactId=myweb -DarchetypeArtifactId=maven-archetype-webapp</span></span></li>
</ol>
</div>
<br />
将创建名为<strong><em>myweb</em></strong>的web项目。<br />
<br />
为该项目增加eclipse WTP的支持，到myweb目录下，运行：<br />
<br />
<div class="dp-highlighter">
<div class="bar"> </div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn -Dwtpversion=</span><span class="number">1.0</span><span> eclipse:eclipse  </span></span></li>
</ol>
</div>
<br />
将该项目导入Eclipse，和上面java项目类似。<br />
<br />
<h2>使用M2Eclipse插件</h2>
安装M2Eclipse插件成功后，在Eclipse点击刚才创建的web项目或者java项目。<br />
<br />
鼠标右键，Maven&gt;Enable dependency management，使m2eclipse插件对该项目生效。<br />
<br />
再次鼠标右键，选择Maven&gt;add dependency，就可以通过网络增加需要的类库了。<br />
<br />
见下图：<br />
<br />
<img src="http://marshal.javaeye.com/topics/download/74293d58-3c09-41c6-8a9f-81e647e6a986?disposition=attachment" alt="" /><br />
选中后，maven将自动下载该类库版本到本地，并且自动加入到eclipse类库中。<br />
<br />
<br />
<br />
<br />
<ul><br />
    <br />
    <br />
    <br />
    <br />
</ul>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/144335#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 27 Nov 2007 21:51:00 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/144335</link>
        <guid>http://marshal.javaeye.com/blog/144335</guid>
      </item>
          <item>
        <title>Web系统功能测试工具：Selenium</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/143840" style="color:red;">http://marshal.javaeye.com/blog/143840</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>&nbsp;Selenium简介</h2>
<br />
Selenium是web应用的测试工具。 <br />
<br />
网址是：<a href="http://www.openqa.org/selenium/ ">www.openqa.org/selenium/ </a><br />
<br />
Selenium可直接在浏览器中测试，就像真正的浏览器用户一样。 <br />
<br />
可以运行在Windows和Macintosh下的IE，Mozilla Firefox。<br />
<br />
可用于：<br />
<ul>
    <li>浏览器兼容性测试</li>
    <li>系统功能测试</li>
</ul>
如果是初次使用Selenium，最好从SeleniumIDE开始，而不是从Selenium Core，因为Selenium IDE集成了Selenium Core的功能。<br />
<br />
<h2>Selenium如何工作</h2>
<p>Selenium通过javascript和iframe将自动测试引擎嵌入到浏览器中。 <br />
<br />
Selenium可工作在任何能够运行javascript的浏览器。 <br />
<br />
不同类型的浏览器的javascript处理存在差异，Selenium尽最大可能支持各种浏览器。</p>
<p><br />
</p>
<h2>Selenium Core</h2>
<p>使用Selenium Core，需要部署到web服务器上，才可以测试。 <br />
<br />
这说明，使用Selenium Core（使用纯DHTML/JavaScript）不能编写测试比如google.com。 <br />
<br />
因为Selenium Core是纯DHTML/JavaScript的，受到客户端JavaScript的安全限制。 <br />
<br />
这是JavaScript安全需求。如果不能修改要测试的webserer，Selenium Core不是合适的测试工具。 <br />
<br />
需要使用Selenium IDE或者Selenium RC替代。</p>
<p><br />
</p>
<h2>Selenium IDE</h2>
<p>见：http://www.openqa.org/selenium-ide/ <br />
<br />
Selenium IDE是一个测试集成开发环境。 <br />
<br />
是Firefox插件，可记录，编辑和调试测试。 <br />
<br />
Selenium IDE包括完成的Selenium Core，易于和快速记录和运行测试。 <br />
<br />
Selenium IDE不只是录制工具：是完整的IDE。 <br />
<br />
可以录制，或者手工写脚本。</p>
<br />
<h2>Selenium RC</h2>
<br />
Selenium RC即Selenium Remote Control。<br />
<br />
如果测试google，又不能在google网站上添加Selenium Core，可以使用Selenium RC。 <br />
<br />
Selenium RC提供了一个代理服务器，比如可以让浏览器以为是在执行http://www.google.com/selenium-server/MyTestSuite.html <br />
<br />
To use the Selenium Server as a proxy, run your tests like this: <br />
<br />
启动Selenium RC，作为代理服务器执行测试，类似： <br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>java&nbsp;-jar&nbsp;selenium-server.jar&nbsp;-htmlSuite&nbsp;</span><span class="string">&quot;*firefox&quot;</span><span>&nbsp;</span><span class="string">&quot;http://www.google.com&quot;</span><span>&nbsp;</span><span class="string">&quot;c:\absolute\path\to\my\HTMLSuite.html&quot;</span><span>&nbsp;</span><span class="string">&quot;c:\absolute\path\to\my\results.html&quot;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
程序运行后生成results.html，如果超时，程序退出，而且不生成results.html。
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/143840#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 22:19:22 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/143840</link>
        <guid>http://marshal.javaeye.com/blog/143840</guid>
      </item>
          <item>
        <title>使用OSCache</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/143835" style="color:red;">http://marshal.javaeye.com/blog/143835</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
OSCache是缓存工具。 <br />
<br />
网址：<a href="http://www.opensymphony.com/oscache/ ">www.opensymphony.com/oscache/ </a><br />
<br />
由一组类和JSP标签库组成。 <br />
<br />
可细粒度的动态缓存JSP内容，Servlet响应或者任意对象。 <br />
<br />
可使用内存，或者持久化到硬盘缓存，并能为网站提供容错支持（比如数据库关闭了，网站使用缓存的内容，用户仍可访问网站内容）。<br />
<br />
<strong>可用于<br />
</strong>
<ul>
    <li>缓存动态内容：网站为每个请求执行生成动态内容，但是有时内容对所有请求都没有变化。不过又不能缓存整个页面，因为部分内容可能在每个请求都发生变化。OSCache可缓存JSP页面片段。</li>
    <li>缓存二进制内容：生成图片和PDF很消耗服务器资源。OSCache实现的Servlet2.3的CachingFilter，缓存URI的响应内容。</li>
    <li>&nbsp;容错支持：当某个页面程序出现故障，因为用户访问的是缓存，因此有容错功能</li>
</ul>
<strong>特性列表：</strong><br />
<ul>
    <li>缓存任意对象：和HTTP请求，JSP无关，缓存java任何对象；</li>
    <li>全面的API：对OSCache的所有特性，都能通过API编程控制；</li>
    <li>持久化的缓存：缓存可选保存到磁盘，使缓存在系统重启后依然有效；</li>
    <li>集群：不需要修改代码，支持缓存的集群，并使用单一的配置参数；</li>
    <li>缓存实体的过期支持：提供很多控制功能，用于处理缓存内容的过期，如果默认过期功能不能满足要求，也可自定义RefreshPolicies。</li>
</ul>
<h2>安装<br />
</h2>
<ul>
    <li>下载并解压缩分发包，当前版本2.4.1，下载地址：http://www.opensymphony.com/oscache/download.action</li>
    <li>将oscache.jar加入到/WEB-INF/lib</li>
    <li>确保commons-logging.jar在/WEB-INF/lib</li>
    <li>设置oscache.properties，并保存到/WEB-INF/classes，可选</li>
</ul>
<h2>使用OSCache<br />
</h2>
<h3>缓存完整的网站页面<br />
</h3>
<strong>简介<br />
<br />
</strong>OSCache使用Servlet API中的Filter透明缓存网站的页面和二进制内容（比如动态生成的图片）。 <br />
<br />
OSCache通过CacheFilter的配置文件缓存servlet的response对象。 <br />
<br />
OSCache只缓存HTTP200 OK的HTTP响应，也就是说，不会缓存报错。<br />
<br />
<strong>配置示例<br />
<br />
</strong>创建web项目。 <br />
<br />
编写test.jsp文件，任意内容。 <br />
<br />
加入安装一节提到的类库。<br />
<br />
在web.xml文件中加入：<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>&lt;filter&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;CacheFilter&lt;/filter-name&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-<span class="keyword">class</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.opensymphony.oscache.web.filter.CacheFilter&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-<span class="keyword">class</span><span>&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;/filter&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;filter-mapping&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;filter-name&gt;CacheFilter&lt;/filter-name&gt;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;/filter-mapping&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
这样将针对url结尾是jsp的响应缓存。<br />
<br />
可使用的其他参数，见oscache分发包中的文档。<br />
<br />
<h3>缓存页面中部分内容</h3>
<br />
用于缓存页面部分内容。 <br />
<br />
创建JSP文件。 <br />
<br />
在页面中导入OSCache的标签：<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>&lt;%@&nbsp;taglib&nbsp;uri=</span><span class="string">&quot;http://www.opensymphony.com/oscache&quot;</span><span>&nbsp;prefix=</span><span class="string">&quot;cache&quot;</span><span>&nbsp;%&gt;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
在页面中编写一个需要缓存的内容：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>&lt;h1&gt;测试&lt;/h1&gt;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&lt;cache:cache&gt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>OSCache缓存的内容。&nbsp;&nbsp;</span></li>
    <li class=""><span>&lt;/cache:cache&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
<h3>持久化缓存内容</h3>
<br />
就是将缓存内容保存到磁盘中。<br />
<br />
可自定义配置文件，覆盖默认的配置文件，配置文件需要放置在classpath下，名称为：oscache.properties<br />
<br />
使用磁盘做缓存的配置文件示例：<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>cache.memory=</span><span class="keyword">false</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>cache.path=c:\\oscache&nbsp;&nbsp;</span></li>
    <li class="alt"><span>cache.capacity=<span class="number">1000</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>cache.persistence.<span class="keyword">class</span><span>=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
重启tomcat，日志提示创建缓存目录。 <br />
<br />
访问上面示例的页面，缓存内容被记录到缓存目录中。
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/143835#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 22:11:00 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/143835</link>
        <guid>http://marshal.javaeye.com/blog/143835</guid>
      </item>
          <item>
        <title>MoinMoin桌面版本的安装和配置</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/143582" style="color:red;">http://marshal.javaeye.com/blog/143582</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
使用wiki的方式管理知识，是一种有效的方式。<br />
<br />
本文介绍使用wiki工具建立个人桌面知识管理的方案。<br />
<br />
wiki就像bbs一样，是一种组织知识的方式，bbs以时间和主题为线索，wiki以知识结构为线索。<br />
<br />
wiki的实现很多，PHP，Python，Java，ASP等都有。<br />
<br />
这里采用moinmoin wiki，<a href="http://moinmoin.wikiwikiweb.de/">moinmoin.wikiwikiweb.de/</a><br />
<br />
目前使用的是moinmoin的桌面版本（安装非常简单）：1.5.5a-1，下载：<a href="http://moinmoin.wikiwikiweb.de/DesktopEdition">moinmoin.wikiwikiweb.de/DesktopEdition</a><br />
<br />
这里有exe格式和zip格式供选择，其中exe版本内置了python支持，不需要再下载安装python了，不过配置不灵活，本文使用zip格式。<br />
<br />
moinmoin是使用python编写的wiki实现， 需要下载python，<a href="http://www.python.org/">www.python.org/</a>，当前版本2.5。<br />
<br />
moinmoin桌面版本的优点是：<br />
<ul>
    <li>安装简单;</li>
    <li>支持中文全文检索；</li>
    <li>汉化较好；</li>
    <li>不依赖外界的数据库, 使用纯文本保存, 备份非常容易, 直接复制即可。</li>
</ul>
<h2>安装和配置</h2>
<h3>安装python</h3>
默认安装这个安装包，不需要特别的配置。<br />
<br />
<h3>安装moinmoin的桌面版</h3>
zip格式，直接解压缩即可。<br />
<br />
<h3>运行moinmoin</h3>
<ul>
    <li>确保8080端口未被占用, 默认启动使用这个端口</li>
    <li>进入解压缩的目录, 双击moin.py</li>
    <li>通过浏览器访问: <a href="http://localhost:8080">localhost:8080</a></li>
</ul>
<h3>修改moinmoin端口</h3>
<br />
见moin.py:<br />
<br />
<div class="code_title">python 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-py">
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;DefaultConfig(StandaloneConfig):&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;docs&nbsp;=&nbsp;<span class="commonlibs">os</span><span>.path.join(moinpath,&nbsp;'wiki',&nbsp;'htdocs')&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">#&nbsp;Port&nbsp;(default&nbsp;8080)</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">#&nbsp;To&nbsp;serve&nbsp;privileged&nbsp;port&nbsp;under&nbsp;1024&nbsp;you&nbsp;will&nbsp;have&nbsp;to&nbsp;run&nbsp;as&nbsp;root</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;port&nbsp;=&nbsp;9911&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
<h3>配置为windows服务</h3>
访问<a href="http://www.tacktech.com/display.cfm?ttid=197">www.tacktech.com/display.cfm</a>, 下载srvany.zip.<br />
<br />
将srvany.zip中的srvany.exe和instsrv.exe放置到c:\WINDOWS目录下.<br />
<br />
在命令行窗口运行, 创建moinmoin Windows服务:<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j">
    <li class="alt"><span><span>c:\WINDOWS\instsrv.exe&nbsp;</span><span class="string">&quot;MoinMoin&nbsp;desktop&nbsp;edition&quot;</span><span>&nbsp;c:\WINDOWS\srvany.exe&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
编辑注册表, 在命令行下输入:<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>regedit&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
在注册表中找到:<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MoinMoin&nbsp;desktop&nbsp;edition&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
在<strong><em>MoinMoin desktop edition</em></strong>下创建一个项, 名为<em><strong>Parameters<br />
<br />
</strong></em>在<em><strong>Parameters</strong></em>下创建新的字符串值, 名为<em><strong>Application</strong></em>, 值为:<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j">
    <li class="alt"><span><span>D:\Python25\python.exe&nbsp;E:\moin-desktop\moin.py&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
其中E:\moin-desktop\moin.py是指moin.py的绝对路径<br />
<br />
在服务中启动MoinMoin desktop edition, 就可以通过浏览器访问了.<br />
<br />

          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/143582#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 12:36:00 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/143582</link>
        <guid>http://marshal.javaeye.com/blog/143582</guid>
      </item>
          <item>
        <title>免费的Linux集群解决方案：LVS</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/143342" style="color:red;">http://marshal.javaeye.com/blog/143342</a>&nbsp;
          发表时间: 2007年11月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
LVS，Linux Virtual Server，网站：<a href="http://www.linuxvirtualserver.org/">www.linuxvirtualserver.org/</a><br />
<br />
LVS是针对Linux服务器的集群解决方案。<br />
<br />
LVS对最终用户完全透明，就好像是一台高性能虚拟的服务器。<br />
<br />
可作为负载均衡解决方案应用于需要高扩展能力，高可用性的网络服务。<br />
<br />
如Web服务，缓存，邮件，FTP，媒体和VoIP服务等。<br />
<br />
该软件遵守GPL协议。<br />
<br />
<h2>基本功能和应用</h2>
<br />
见图：<br />
<br />
<a href="http://www.linuxvirtualserver.org/VirtualServer.png"><img src="http://www.linuxvirtualserver.org/VirtualServer.png" alt="" /></a><br />
<br />
<strong>基本机制：</strong><br />
<br />
<ul>
    <li>基于网络第四层传输层的软件解决方案；</li>
    <li>负载均衡服务器支持HA（可通过心跳线切换主均衡服务器到备份服务器）；</li>
    <li>Real Server可以根据业务情况随时增加。</li>
</ul>
<strong>是否可以在Real Server上部署Tomcat集群？<br />
<br />
</strong> 是的，Tomcat的集群技术是第七层应用层的集群技术，LVS是第四层的集群技术，二者没有冲突。<br />
<br />
<strong>使用LVS替代Apache＋Tomcat的集群方案<br />
<br />
</strong>Apache的负载均衡方案是应用层的技术，性能和LVS有很大差距。<br />
<br />
LVS可以替代Apache，结合Tomcat自身的集群功能，实现负载均衡功能。
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/143342#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 Nov 2007 20:40:49 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/143342</link>
        <guid>http://marshal.javaeye.com/blog/143342</guid>
      </item>
          <item>
        <title>JSP 2.1对JSP2.0的改动</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/141878" style="color:red;">http://marshal.javaeye.com/blog/141878</a>&nbsp;
          发表时间: 2007年11月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          带着这个问题，查看了JCP的change log。<br />
<br />
见：<a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr245/245-MR1.html">jcp.org/aboutJava/communityprocess/maintenance/jsr245/245-MR1.html</a><br />
<br />
JSP2.1主要改动是，使EL可脱离JSP2.1规范并单独成为规范。<br />
<br />
下一个版本的JSP规范将删除有关EL的描述。<br />
<br />
并将推出单独的EL规范。<br />
<br />
<strong>改动列表：<br />
<br />
</strong>
<ol>
    <li>版本：作为JSP2.1一部分的EL定义为1.0，独立的EL定义为1.1。</li>
    <li>在EL1.1中的新方法：为了EL可以独立执行，增加了两个工厂方法。
    <ul>
        <li>javax.el.ExpressionFactory.newInstance()</li>
    </ul>
    <ul>
        <li>javax.el.ExpressionFactory.newInstance(Properties)</li>
    </ul>
    </li>
</ol>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/141878#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 19 Nov 2007 22:36:20 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/141878</link>
        <guid>http://marshal.javaeye.com/blog/141878</guid>
      </item>
          <item>
        <title>Safari推出支持国际化的windows的版本</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/141544" style="color:red;">http://marshal.javaeye.com/blog/141544</a>&nbsp;
          发表时间: 2007年11月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          safari是Apple公司的web浏览器。<br />
<br />
最近推出的3.0.4BETA版本，已经正式支持国际化。<br />
<br />
试用了一下，中文显示和中文表单提交都已经正常。<br />
<br />
下载地址：<a href="http://www.apple.com/safari/download/">www.apple.com/safari/download/</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/141544#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 18 Nov 2007 19:15:53 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/141544</link>
        <guid>http://marshal.javaeye.com/blog/141544</guid>
      </item>
          <item>
        <title>介绍Eclipse Debugger的flash课程</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/141482" style="color:red;">http://marshal.javaeye.com/blog/141482</a>&nbsp;
          发表时间: 2007年11月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一个介绍Eclipse 3.3下Debugger使用的Flash课程。<br />
<br />
在Eclipse网站上看到的，见：<a href="http://eclipsetutorial.sourceforge.net/debugger01/lesson01.html">eclipsetutorial.sourceforge.net/debugger01/lesson01.html</a><br />
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/141482#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 18 Nov 2007 12:03:51 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/141482</link>
        <guid>http://marshal.javaeye.com/blog/141482</guid>
      </item>
          <item>
        <title>一个能根据哼唱录音查找歌曲信息的网站</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/141463" style="color:red;">http://marshal.javaeye.com/blog/141463</a>&nbsp;
          发表时间: 2007年11月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这是一个能根据哼唱录音查找歌曲信息的网站。<br />
<br />
网址：<a href="http://www.midomi.com/">www.midomi.com/</a><br />
<br />
只需电脑有麦克风，然后网站有功能帮助你录制并上传哼唱歌曲的录音片段。<br />
<br />
网站根据这个录音查找歌曲的相关信息。
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/141463#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 18 Nov 2007 10:05:59 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/141463</link>
        <guid>http://marshal.javaeye.com/blog/141463</guid>
      </item>
          <item>
        <title>软件建模工具Enterprise Architect</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/141370" style="color:red;">http://marshal.javaeye.com/blog/141370</a>&nbsp;
          发表时间: 2007年11月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
Enterprise Architect和Rational Rose，Borland Together类似，是软件建模工具。<br />
<br />
Enterprise Architect简称EA，网址：<a href="http://www.sparxsystems.com.au/">www.sparxsystems.com.au/</a><br />
<br />
是一家土生土长的澳大利亚公司。<br />
<br />
当前版本：7.0<br />
<br />
可以下载有时限全功能的试用版本。<br />
<br />
当前版本支持最新的UML 2.1建模语言标准。<br />
<br />
<h2>为什么使用Enterprise Architect</h2>
<br />
很久以前也用Rose，觉得安装非常笨重，图形也不美观（个人观点哦）。<br />
<br />
后来用Together，用了很长时间，缺点是需要依赖java环境，资源消耗较大，和本地程序结合有一些问题，比如图片的复制等。<br />
<br />
前年开始用EA，非常小巧，只有27MB，安装简便，而且是本地程序，编写文档时复制图片等都非常简便，消耗资源也很少。<br />
<br />
另外，图形也很美观，对UML标准更新的也非常快。<br />
<br />
<h2>功能介绍</h2>
<h3>模型管理</h3>
<ul>
    <li>模型文件：默认模型文件保存在Microsoft JET数据库中，通过设置可以通过ODBC保存到其他数据库中，便于多人工作；</li>
    <li>复制：便于多人独立编写建模文件，该功能可以合并多人修改的相同文件，类似版本控制的merge；</li>
    <li>版本控制：支持svn,cvs等多种版本控制器；</li>
    <li>用户安全：针对多人工作模式下的权限管理，可对模型加锁解锁，防止篡改等；</li>
    <li>数据传输：针对多人工作模式下的数据传输功能；</li>
    <li>自动化接口：通过java，ActiveX等技术访问EA提供的内部接口，实现自定义的报告或者任务等；</li>
    <li>附加项：ActiveX COM对象，用于扩展EA功能；</li>
    <li>基线和差异：基线是某个时间建模的快照，EA支持在同一文件中保存多个基线，可通过compare(diff)工具发现各个基线版本的差异；</li>
    <li>审核：对多人工作模式下的特性，记录每个人的操作，便于以后查询，比如是谁改动了这个元素，什么时间改动的等等。</li>
</ul>
<h3>项目管理</h3>
<ul>
    <li>预算：通过用例粗略评估项目耗时规模；</li>
    <li>资源管理：资源是参加项目的人员，EA可定义角色和分配任务，并跟踪完成效果和评估完成时间；</li>
    <li>项目维护：记录错误，修改，问题和任务；</li>
    <li>项目任务和问题：记录和管理非技术的问题和任务</li>
</ul>
<h3>代码工程</h3>
<ul>
    <li>代码生成：即正向工程，能够通过UML模型元素生成源代码（c,c++,c#,delphy,java,php,python,vb,vb.net等）；</li>
    <li>反向工程：根据已经存在的源代码生成模型元素，对java的jar文件和.net的PE文件也可以反向工程；</li>
    <li>同步：保持模型和代码的一致性；</li>
    <li>循环工程：混合正向工程和反向工程</li>
</ul>
<h3>调试和分析</h3>
调试执行脚本。<br />
<br />
<h3>数据建模<br />
</h3>
<ul>
    <li>表和列：创建表和列的模型，并生成DDL；</li>
    <li>数据库的键：创建主键和外键的模型</li>
    <li>支持的数据库：DB2,Firebird/interbase,informix,ingres,ms access,ms sql server,mysql,oracle,postgreSQL,sybase</li>
</ul>
<h3>MDA转换<br />
</h3>
支持转换DDL，EJB Entity, EJB Session,Java,JUnit,C#,NUnit,WSDL,XSD.<br />
<br />
<h3>XML技术</h3>
<br />
EA支持针对XSD,WSDL快速建模，正向工程和反向工程。<br />
<br />
<h3>扩展EA</h3>
提供了一些扩展机制。
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/141370#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 17 Nov 2007 18:06:00 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/141370</link>
        <guid>http://marshal.javaeye.com/blog/141370</guid>
      </item>
          <item>
        <title>Maven的插件minijar，用于压缩依赖包</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/140697" style="color:red;">http://marshal.javaeye.com/blog/140697</a>&nbsp;
          发表时间: 2007年11月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
Maven的插件minijar，用于压缩依赖包。<br />
<br />
minijar是mojo项目中的一个插件。<br />
<br />
mojo项目：<a href="http://mojo.codehaus.org/">mojo.codehaus.org/</a><br />
<br />
minijar项目：<a href="http://mojo.codehaus.org/minijar-maven-plugin/">mojo.codehaus.org/minijar-maven-plugin/</a><br />
<br />
该插件分析项目中类的依赖关系。<br />
<br />
一般情况下项目并不是依赖库中的所有的类。<br />
<br />
minijar能够生成一个项目依赖的相关类的迷你的jar文件版本。<br />
<br />
比如一个依赖的jar文件有10个类，当前项目只直接/间接依赖其中的3个，那么minijar将为你生成一个只有3个类的jar。<br />
<br />
<h2>简单使用</h2>
<br />
在默认target目录下生成mini jar文件：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn&nbsp;minijar:minijars&nbsp; <br />
    </span></span></li>
</ol>
</div>
<br />
另外，比如有多个类库，也可以将它们打在一起生成单一的jar文件。<br />
<br />
这需要使用ueberjar，见：<a href="http://mojo.codehaus.org/minijar-maven-plugin/ueberjar-mojo.html">mojo.codehaus.org/minijar-maven-plugin/ueberjar-mojo.html</a><br />
<br />
命令如下：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>mvn&nbsp;minijar:ueberjar&nbsp;&nbsp;</span></span></li>
</ol>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/140697#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 14 Nov 2007 19:53:23 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/140697</link>
        <guid>http://marshal.javaeye.com/blog/140697</guid>
      </item>
          <item>
        <title>Windows下安装PHP环境</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/140375" style="color:red;">http://marshal.javaeye.com/blog/140375</a>&nbsp;
          发表时间: 2007年11月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
本文介绍一下如何在Windows下安装PHP基本环境，Web服务器使用Apache。<br />
<br />
<h2>基本步骤</h2>
<h3>安装Apache</h3>
下载Apache http server Windows版本，地址：<a href="http://download.nextag.com/apache/httpd/binaries/win32/">download.nextag.com/apache/httpd/binaries/win32/</a><br />
<br />
当前版本2.2.6<br />
<br />
默认安装， <strong><em>要求域名(localhost)/地址(localhost)/邮箱必填，否则无法启动apache</em></strong>。<br />
<br />
访问: http://localhost/，确认安装是否成功。<br />
<h3>安装PHP</h3>
下载最新版本的PHP，地址：<a href="http://www.php.net/downloads.php">www.php.net/downloads.php</a><br />
<br />
当前最新版本，5.2.5<br />
<br />
<strong><em>下载zip格式的版本。<br />
<br />
</em></strong>解压缩到c:/php目录下。<br />
<br />
将c:/php加入windows环境变量Path。<br />
<br />
将c:/php/php.ini-recommended改名为c:/php/php.ini。<br />
<h3>集成Apache和PHP</h3>
关闭Apache Http Server。<br />
<br />
找到Apache2.2\conf\httpd.conf文件， 文件尾部加入：<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span>#&nbsp;For&nbsp;PHP&nbsp;</span><span class="number">5</span><span>&nbsp;</span><span class="keyword">do</span><span>&nbsp;something&nbsp;like&nbsp;</span><span class="keyword">this</span><span>:&nbsp;&nbsp;</span></span></li>
    <li class=""><span>LoadModule&nbsp;php5_module&nbsp;c:/php/php5apache2_2.dll&nbsp;&nbsp;</span></li>
    <li class="alt"><span>AddType&nbsp;application/x-httpd-php&nbsp;.php&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>#&nbsp;configure&nbsp;the&nbsp;path&nbsp;to&nbsp;php.ini&nbsp;&nbsp;</span></li>
    <li class=""><span>PHPIniDir&nbsp;C:/php&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
将：<br />
<br />
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-xml" start="1">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">IfModule</span><span>&nbsp;dir_module</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>DirectoryIndex&nbsp;index.html&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="tag"><!--</span--><span class="tag-name">IfModule</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></span></li>
</ol>
</div>
<br />
修改为：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span></span></span></li>
    <li class=""><span>DirectoryIndex&nbsp;index.html&nbsp;index.php&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
重新启动Apache。<br />
<br />
<strong>测试安装是否成功：<br />
<br />
</strong>在Apache2.2\htdocs目录下，编写test.php文件：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-py" start="1">
    <li class="alt"><span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
通过http://localhost/test.php访问。
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/140375#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 14 Nov 2007 00:09:28 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/140375</link>
        <guid>http://marshal.javaeye.com/blog/140375</guid>
      </item>
          <item>
        <title>felix，OSGi R4服务平台的开源实现</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/140058" style="color:red;">http://marshal.javaeye.com/blog/140058</a>&nbsp;
          发表时间: 2007年11月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
Felix，是Apache的一级项目，见：<a href="http://felix.apache.org/site/index.html">felix.apache.org/site/index.html</a><br />
<br />
Felix是OSGi R4服务平台的免费开源实现。<br />
<br />
由Oscar项目演变而来。<br />
<br />
当前版本：1.0.1<br />
<br />
<h2>简单使用</h2>
<br />
下载压缩包：<a href="http://felix.apache.org/site/downloads.cgi">felix.apache.org/site/downloads.cgi</a><br />
<br />
解压缩，安装完毕。<br />
<br />
命令行，进入解压缩的目录，启动felix：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>java&nbsp;-jar&nbsp;bin\felix.jar&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
需要输入profile name，用于存储相关信息。<br />
<br />
<strong>以下是简单的命令：</strong><br />
<br />
help，显示命令提示<br />
<br />
version，查看felix版本<br />
<br />
ps，列出以安装的组件<br />
<br />
install <url>，安装组件<br />
<br />
services，列出注册或使用的服务<br />
<br />
start <id>，启动组件<br />
<br />
stop<id>，停止组件<br />
<br />
uninstall&nbsp; <id>，卸载组件<br />
<br />
update <id>，更新组件<br />
<br />
shutdown，退出<br />
<br />
</id></id></id></id></url>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/140058#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 12 Nov 2007 23:40:48 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/140058</link>
        <guid>http://marshal.javaeye.com/blog/140058</guid>
      </item>
          <item>
        <title>Eclipse的内核，OSGi的实现：Equinox</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/140050" style="color:red;">http://marshal.javaeye.com/blog/140050</a>&nbsp;
          发表时间: 2007年11月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>简介</h2>
<br />
Equinox是Eclipse的子项目，见：<a href="http://www.eclipse.org/equinox/">www.eclipse.org/equinox/</a><br />
<br />
Equinox是OSGi R4标准框架规范的实现，该规范见：<a href="http://osgi.org/osgi_technology/download_specs.asp?section=2#Release4">osgi.org/osgi_technology/download_specs.asp</a><br />
<br />
OSGi是面向组件和服务的开发框架标准。<br />
<br />
Equinox是Eclipse的基础核心。<br />
<br />
Eclipse的各项功能，包括JDT，CDT，PDT等等一切，都是作为插件（组件）绑定在这个OSGi实现Equinox之上。<br />
<br />
<h2>简单使用</h2>
<br />
Equinox项目可以独立使用，相当于不加载Eclipse上面的各个功能插件。<br />
<br />
Equinox可以动态安装，加载，停止和卸载插件。<br />
<br />
下载Equinox Framework，见：<a href="http://download.eclipse.org/eclipse/equinox/drops/R-3.3.1.1-200710231652/index.php">download.eclipse.org/eclipse/equinox/drops/R-3.3.1.1-200710231652/index.php</a><br />
<br />
启动Equinox：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>java&nbsp;-jar&nbsp;org.eclipse.osgi_3.</span><span class="number">3.1</span><span>.R33x_v20070828.jar&nbsp;-console&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
检查当前所有加载的组件命令，ss：<br />
<br />
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>osgi&gt;&nbsp;ss&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>Framework&nbsp;is&nbsp;launched.&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;State&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bundle&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="number">0</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ACTIVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.eclipse.osgi_3.</span><span class="number">3.1</span><span>.R33x_v20070828&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
输入错误的命令，会提示可用的命令<br />
<br />
install <bundle url="">，用于安装组件<br />
<br />
start <bundle name="" or="" bundle="">，用于启动组件<br />
<br />
stop <bundle name="" or="" bundle="">，用于停止组件<br />
<br />
diag <bundle name="" or="" bundle="">，用于报告有关该组件的问题<br />
<br />
exit，退出<br />
<br />
<br />
</bundle></bundle></bundle></bundle>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/140050#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 12 Nov 2007 22:54:02 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/140050</link>
        <guid>http://marshal.javaeye.com/blog/140050</guid>
      </item>
          <item>
        <title>使用GUI Design Studio做桌面系统的界面需求</title>
        <author>marshal</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://marshal.javaeye.com">marshal</a>&nbsp;
                    链接：<a href="http://marshal.javaeye.com/blog/139794" style="color:red;">http://marshal.javaeye.com/blog/139794</a>&nbsp;
          发表时间: 2007年11月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          桌面系统，为了说明需求，要画出用户能够理解的界面窗口。<br />
<br />
visio可以做这个事情。<br />
<br />
GUI Design Studio是专门做这方面的工具。<br />
<br />
见：<a href="http://www.carettasoftware.com/index.html">www.carettasoftware.com/index.html</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://marshal.javaeye.com/blog/139794#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 11 Nov 2007 19:57:30 +0800</pubDate>
        <link>http://marshal.javaeye.com/blog/139794</link>
        <guid>http://marshal.javaeye.com/blog/139794</guid>
      </item>
      </channel>
</rss>