<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
  <title>火烧径-make life easier</title>
  <link>http://fireshort.blogbus.com</link>
  <description><![CDATA[]]></description>
  <generator> by blogbus.com </generator>
  <lastBuildDate>Wed, 19 Oct 2005 17:16:51 +0800</lastBuildDate>
  <image>
									<url>http://public.blogbus.com/images/head.gif</url>
									<title>火烧径-make life easier</title>
									<link>http://fireshort.blogbus.com</link>
								</image>  <item>
   <title>失望，Linuxer编辑的认识高度</title>
   <description><![CDATA[<p>摘：（Fireshort即偶的观点，Rainking是linuxer杂志编辑的观点）</p><p>Fireshort：</p><div id="message5179" class="t_msgfont">《Struts，一个开源的MVC实现》是一篇好文章，然而，却是too old了，记忆中很久很久以前已经看过了，一google，发现是ibm dw上文章：<br />
<a href="http://www-128.ibm.com/developerworks/cn/java/j-struts/" target="_blank">http://www-128.ibm.com/developerworks/cn/java/j-struts/</a><br />
时间是2001 年 2 月 23 日！<br />
作为一本Linux方面的杂志，用了差不多10页来说一个Java框架，感觉像是充字数的，而且<br />
时效性太差。这一点从文章中struts的版本也很容易看出，明显还是struts1的，编辑都没有搞Java开发的？如果是这样，我可以代为审核，确保Java方面的文章不至于太out。不过还是建议不要大篇幅的出现只谈Java的文章。</div><p>&nbsp;Rainking：</p><p>据我所知,目前绝大多数公司在开发java程序的时候选择的jdk版本是1.4.2,很多目前还未发售的游戏(地狱之门等等)是用MFC开发的.<br />
<br />
out?过时?个人的态度而已.<br />
<br />
去年暑假候捷给我们上课的时候,用的是win98+word97.out?过时?<br />
<br />
超多的经典教材,多到我都懒得一个个报名字,都是上个世纪的产物,难道都out?过时?too old?<br />
<br />
ok,不想再讨论时限的问题,大家都明白我的意思.<br />
<br />
至于为何花10页的篇幅写struts,是因为1 它是开源的 2 无数读者想看开发的,技术的文章 抛砖引玉 看看读者态度而已<br />
<br />
Linuxer要扩展文章的类型了,以linux为主打,开源的文章也可以上,就这样</p><p>Fireshort：</p><p>&ldquo;目前绝大多数公司在开发java程序的时候选择的jdk版本是1.4.2&rdquo;这个倒是我孤陋寡闻了。<br />
经典的教材跟一个开发的框架没有可比性。有一句话说，总有一些东西值得我们的后代去记取，然而，却绝对不是上面这篇介绍struts1的文章。对于
Java
Web开发的初学者，我宁愿他先学会基本的Servlet+Jsp，然后投入学习更好的web框架，而不是学习deprecated的struts1。后
发者要发挥后发者的优势，不要浪费时间照着别人的错误再错一次，吸取教训就可以了。 </p><p>&nbsp;</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/4314833.html">CVS服务器设置指南</a> 2007年01月17日</div><div><a href="http://fireshort.blogbus.com/logs/4359776.html">用Java进行LDAP编程的方式</a> 2007年01月23日</div><div><a href="http://fireshort.blogbus.com/logs/2087266.html">eXtremeTable的“action”参数问题</a> 2006年03月18日</div><div><a href="http://fireshort.blogbus.com/logs/1727844.html">commons-fileupload中文乱码问题的解决</a> 2005年12月20日</div><div><a href="http://fireshort.blogbus.com/logs/1514576.html">结合ToolAgent与自定义数据类型实现下拉列表</a> 2005年10月18日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F5560966.html&title=%E5%A4%B1%E6%9C%9B%EF%BC%8CLinuxer%E7%BC%96%E8%BE%91%E7%9A%84%E8%AE%A4%E8%AF%86%E9%AB%98%E5%BA%A6">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/5560966.html</link>
   <author>fireshort</author>
   <pubDate>Tue, 29 May 2007 10:53:47 +0800</pubDate>
  </item>
  <item>
   <title>一条线路引发的对深圳公交的思考</title>
   <description><![CDATA[最近，从家里（盐田区政府）去公司（水库）上班，发现多了一条线路：53路，于是欣然从208转到53。53路的座位比208的舒服多了，然而几天下来，我却从53路深刻体会到了深圳公交存在的问题。<br />问题一：想宰就宰<br />53路原来是全程2元（普巴1.5元），值此众多深圳老百姓对公交票价过高意见纷纷之际，竟尔毫不犹豫的借了个因头（延长线路云云），暴涨至全程9元。自由的年代，想唱就唱；垄断的集团，想宰就宰啊。不知道物价局在这里发挥了什么作用？<br />问题二：每一段还是那么贵<br />除了全程贵，53路每一段还是那么贵。<br />这几天，在53路车上，见得最多的是乘客跟乘务员&ldquo;讨论&rdquo;票价的问题，听到最多的是&ldquo;怎么这么贵啊，以后再也不坐这趟车了，你们这趟车怎么会有生意&hellip;&hellip;&rdquo;。跟238比，238只要两块，53就要收四块；跟360比，360只要三块，53就要六块&hellip;&hellip;<br />问题三：分段暗藏猫腻<br />53路的分段点设置得也颇为奇怪，像&ldquo;东湖宾馆&rdquo;又是一个分段点、&ldquo;三家店&rdquo;是一个分段点，奇怪的是，这两个都不是什么大站点，却为何都设在那里，而不是设置在&ldquo;水库&rdquo;、&ldquo;盐田区政府&rdquo;这样的大站呢？<br />看一下分段收费的算法就清楚了，以&ldquo;水库&rdquo;坐到&ldquo;新一佳&rdquo;为例。<br />53的路线是这样的：东湖宾馆、水库、水库新村、怡景花园、峰景台、罗湖体育馆、西岭吓、聚宝路口、莲塘、畔山花园、长岭、胫肚、沙头角海关、三家店、沙头角邮局、新一佳<br />在&ldquo;水库&rdquo;上车，就是算在&ldquo;东湖宾馆&rdquo;这个分段点上面上车，而在&ldquo;新一佳&rdquo;下车，则算到了&ldquo;三家店&rdquo;的下个段，也就是跨段，要多收一个段的费了。简单来说，就是上车的时候，不够一个段的算一个段，下车的时候，超出一个段的，再算一个段，真是好计算啊。好在电信、移动没有学会这招，不然我打50秒的电话，它说我是从18:30:30秒打起的，要从18：30：00算起，然后在18:31:20结束的，要算到18：32:00，这样就是两分钟了，呵呵<br />其实53最好是在&ldquo;胫肚&rdquo;里设分段点了，那样几乎每个过隧道的人都是要跨段的，哈哈。<br />其实有个疑问，一直不得其解，为什么要按分段来定价，定下来任意两个点的票价很困难吗？（就我所见所闻，同是SBG的车，任意两个点的票价也相差颇大，而这是很多乘客与乘务员经常发生的争执。）不要说要记住这些票价很难，就算是30个站点，也不过是30&times;30=90条记录，天天卖票，乘务员也会很快记住，就算记不住，也可以打印一张纸对照（看到很多新乘务员都会这招）。<br />&nbsp;不过最好的办法还是能够像&ldquo;北京&rdquo;、&ldquo;广州&rdquo;的公交一样，票价能够降下来，全程2-3元，深圳通真的可以通&ldquo;深圳&rdquo;。就不知道深圳巴士集团SBG是不是真的有诚意，而不是老子天下第一，只顾自己的利益，随意定价，都拿咱老百姓当SB了<!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/546067.html">maxthon:个人社会保险快速搜索</a> 2004年12月17日</div><div><a href="http://fireshort.blogbus.com/logs/1263543.html">wsh改名脚本</a> 2005年06月13日</div><div><a href="http://fireshort.blogbus.com/logs/1000347.html">blogbus改版了</a> 2005年01月28日</div><div><a href="http://fireshort.blogbus.com/logs/444370.html">Google Desktop Search，个人知识管理的好东东</a> 2004年10月15日</div><div><a href="http://fireshort.blogbus.com/logs/318071.html">Which Java UI designer was used for the development by JAWE</a> 2004年08月09日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F5211630.html&title=%E4%B8%80%E6%9D%A1%E7%BA%BF%E8%B7%AF%E5%BC%95%E5%8F%91%E7%9A%84%E5%AF%B9%E6%B7%B1%E5%9C%B3%E5%85%AC%E4%BA%A4%E7%9A%84%E6%80%9D%E8%80%83">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/5211630.html</link>
   <author>fireshort</author>
   <pubDate>Mon, 30 Apr 2007 16:03:29 +0800</pubDate>
  </item>
  <item>
   <title>用Java进行LDAP编程的方式</title>
   <description><![CDATA[<span class="postbody">1、直接用JNDI的方式。 <br />shark的LDAPUserGroupManager是采用这种方式。这种方式不需要采用其他的SDK，难度较大。 <br /><br />2、采用<a class="postlink" href="http://www.mozilla.org/directory/javasdk.html" target="_blank">Netscape Directory SDK for Java</a>。在sun的网站可以找到相应的开发文档：<a class="postlink" href="http://docs.sun.com/db/doc/816-6402-10" target="_blank">http://docs.sun.com/db/doc/816-6402-10</a>。 <br /><br />3、采用<a class="postlink" href="http://www.openldap.org/jldap/" target="_blank">jldap</a>。jldap支持“LDIF and DSML read/write functionality and DSML web services ”。不知道Netscape Directory SDK支不支持这些特性。 <br />openldap上面还有JDBC-LDAP，是用JDBC的方式访问LDAP服务器。估计支持的特性更少。</span><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/3617779.html">Java中对有BOM头的UTF-8文件的处理</a> 2006年10月19日</div><div><a href="http://fireshort.blogbus.com/logs/2918289.html">j2ee系统与rtx的整合实现</a> 2006年07月27日</div><div><a href="http://fireshort.blogbus.com/logs/1727844.html">commons-fileupload中文乱码问题的解决</a> 2005年12月20日</div><div><a href="http://fireshort.blogbus.com/logs/1518064.html">javadbf中文问题的解决</a> 2005年10月19日</div><div><a href="http://fireshort.blogbus.com/logs/1420670.html">操作dbf的类库</a> 2005年09月08日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F4359776.html&title=%E7%94%A8Java%E8%BF%9B%E8%A1%8CLDAP%E7%BC%96%E7%A8%8B%E7%9A%84%E6%96%B9%E5%BC%8F">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/4359776.html</link>
   <author>fireshort</author>
   <pubDate>Tue, 23 Jan 2007 18:02:03 +0800</pubDate>
  </item>
  <item>
   <title>CVS服务器设置指南</title>
   <description><![CDATA[<p>第二次配置CVS服务器体会：<br />    1、要用清醒的头脑做事情，不然很容易犯低级错误。<br />    2、Linux可能比Window更像woman：出错了，你不知道哪里错，我也不会告诉你。</p><p>首先确保系统安装有cvs：<br />[root@mail xinetd.d]# rpm -qa|grep cvs<br />cvs-1.11.1p1-3<br />如果命令输出类似于上面的输出则说明系统已经安装有cvs，否则就需要从安装光盘中安装cvs的rpm包。</p><p>一 创建CVS属主用户(用于管理CVS，做CVS操作）：<br /> useradd -d  /deke/cvscore/ cvs<br /> chmod 771 /deke/cvscore/<br />二、建立CVS仓库(初始化cvs)<br /># su cvs<br />$ cvs -d  /deke/cvscore/  init<br />$exit<br />#<br />三、启动cvs服务器<br />　　在Linux上CVS服务可以通过inetd、xinetd或tcpwrapper等来启动，其中inetd由于安全理由在许多场合已经被xinetd所取代了。这里我们使用xinetd来启动CVS服务。<br />在/etc/xinetd.d/目录下创建文件cvs，内容如下：<br /># default: on<br /># description: The cvs server sessions;<br />service cvspserver <br />{<br />        socket_type = stream <br />        wait = no<br />        user = root<br />        server = /usr/bin/cvs<br />        server_args = -f --allow-root= /deke/cvscore/ pserver<br />        log_on_failure += USERID<br />}<br />　注：<br />　　1)pserver表示是口令认证的访问方式，这是最常用的方式，其他还有gserver,kserver,ext，如果想要更高的安全性可以使用ssh来加密口令和数据流，不过这里为了用户使用的方便，仍然选的是pserver<br />　　2)--allow-root是指定Repository的目录，可以建立多个Repository<br />        3)请注意每行等号左右都有一个空格，否则无法启动服务。</p><p>修改该文件权限：<br /># chmod 644 cvs<br />然后重新启动xinetd：<br /># /etc/rc.d/init.d/xinetd restart<br />然后察看cvs服务器是否已经运行：<br />[root@mail xinetd.d]# netstat -lnp|grep 2401<br />tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 7866/xinetd <br />则说明cvs服务器已经运行。</p><p>四、创建用来访问cvs的用户<br />前面创建的cvs用户是cvs仓库管理用户，而为了让用户访问则还需要一个访问用户：<br /># useradd cvspub<br /># usermod -G cvs cvspub<br />这里添加了一个用户cvspub，并且将该用户添加到cvs组中。</p><p>五、管理cvs服务器<br />CVS默认使用系统用户登录，为了系统安全性的考虑也可以使用独立的用户管理。CVS用户名和密码保存在CVSROOT目录下的passwd文件中，格式为：<br />用户名:密码:系统用户<br />也就是说，它把CVS用户映射到系统用户，这样我们就可以通过系统用户的权限设置来分配给用户不同的权限，而不需要让用户知道系统用户名和密码。</p><p>注意：CVS用户不能跟系统用户重名，否则会提示没有权限之类错误。</p><p>passwd文件默认并不存在，我们必须自己创建。文件中的密码字段使用MD5加密，不幸的是CVS没有提供添加用户名的命令，所以我们借用Apache的命令来完成这项工作：</p><p>#htpasswd passwd username</p><p>这个命令为username指定密码，并保存在passwd中，文件不存在时会自动创建。htpasswd命令不是为CVS而设，因此总有一些遗憾，它不能自动添加映射到的用户名，不过没关系，我们设置好密码后，自己把这部分加上。我的做法是映射到cvspub用户，如果需要映射其他的用户，请注意给相应的目录设置好权限，否则CVS用户可能无法访问源代码仓库。<br />要彻底防止使用系统帐号登陆，可以编辑CVSROOT目录下的config文件，把</p><p>代码：<br />#SystemAuth=no</p><p>这一行前面的#去掉，CVS就不会验证系统用户了，否则当用户名不在passwd文件中时，CVS会进行系统用户的验证。</p><p>此外还必须配置读写权限，使用CVSROOT目录下的readers和writers文件进行这个工作。这2个文件默认也是没有的，没关系，自己创建就可以了。readers文件记录拥有只读权限的用户名，每行一个用户；writers文件记录拥有读写权限的用户名，也是每行一个用户。注意， readers文件比writers优先，也就是说出现在readers中的用户将会是只读的，不管writers文件中是否存在该用户。</p><p>readers、writers有没有效果？</p><p>六、源代码仓库的备份和移动<br />基本上，CVS的源代码仓库没有什么特别之处，完全可以用文件备份的方式进行备份。需要注意的只是，应该确认备份的过程中没有用户提交修改，具体的做法可以是停止CVS服务器或者使用锁等等。恢复时只需要把这些文件按原来的目录结构存放好，因为CVS的每一个模块都是单独的一个目录，与其他模块和目录没有任何瓜葛，相当方便。甚至只需要在仓库中删除一个目录或者文件，便可以删除该模块的一些内容，不过并不建议这么做，使用CVS的删除功能将会有一个历史记录，而对仓库的直接删除不留任何痕迹，这对项目管理是不利的。移动仓库与备份相似，只需要把该模块的目录移动到新的路径，便可以使用了。<br />如果不幸在备份之后有过一些修改并且执行了提交，当服务器出现问题需要恢复源代码仓库时，开发者提交新的修改就会出现版本不一致的错误。此时只需要把CVS相关的目录和文件删除，即可把新的修改提交。</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/5560966.html">失望，Linuxer编辑的认识高度</a> 2007年05月29日</div><div><a href="http://fireshort.blogbus.com/logs/1251009.html">eclipse中的cvs删除操作与TortoiseCVS的删除操作的不同之处</a> 2005年06月08日</div><div><a href="http://fireshort.blogbus.com/logs/1727844.html">commons-fileupload中文乱码问题的解决</a> 2005年12月20日</div><div><a href="http://fireshort.blogbus.com/logs/1514576.html">结合ToolAgent与自定义数据类型实现下拉列表</a> 2005年10月18日</div><div><a href="http://fireshort.blogbus.com/logs/1322629.html">SQL Server安装问题</a> 2005年07月21日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F4314833.html&title=CVS%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/4314833.html</link>
   <author>fireshort</author>
   <pubDate>Wed, 17 Jan 2007 17:32:01 +0800</pubDate>
  </item>
  <item>
   <title>Java中对有BOM头的UTF-8文件的处理</title>
   <description><![CDATA[
在用记事本之类的程序将文本文件保存为UTF-8格式时，记事本会在文件头前面加上几个不可见的字符（EF BB BF），就是所谓的BOM（Byte Order Mark）。JDK1.5之前的Reader都不能处理BOM，解析这种格式的xml文件时，会抛出异常：Content is not allowed in prolog. 据说JDK1.6已经解决了这个bug。（参考<a title="http://www.uuzone.com/blog/mao/98921.htm" href="http://www.uuzone.com/blog/mao/98921.htm">http://www.uuzone.com/blog/mao/98921.htm</a> ）<br />在未使用JDK1.6之前，解决办法有三：<br />1、不要使用有BOM头的xml文件，就是说不要用记事本保存utf-8的xml文件，editplus就很好用；<br />2、使用这位仁兄的unicodereader，可以正确处理有BOM的xml文件：<br /><a title="http://koti.mbnet.fi/akini/java/unicodereader/" href="http://koti.mbnet.fi/akini/java/unicodereader/">http://koti.mbnet.fi/akini/java/unicodereader/</a> <br />3、如果是用Xerces解析器，直接传Stream给Xerces，而不是传Reader，Xerces就可以正确的处理了。总之不要用Reader就好了。<br /><br /><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/4359776.html">用Java进行LDAP编程的方式</a> 2007年01月23日</div><div><a href="http://fireshort.blogbus.com/logs/2918289.html">j2ee系统与rtx的整合实现</a> 2006年07月27日</div><div><a href="http://fireshort.blogbus.com/logs/1727844.html">commons-fileupload中文乱码问题的解决</a> 2005年12月20日</div><div><a href="http://fireshort.blogbus.com/logs/1518064.html">javadbf中文问题的解决</a> 2005年10月19日</div><div><a href="http://fireshort.blogbus.com/logs/1420670.html">操作dbf的类库</a> 2005年09月08日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F3617779.html&title=Java%E4%B8%AD%E5%AF%B9%E6%9C%89BOM%E5%A4%B4%E7%9A%84UTF-8%E6%96%87%E4%BB%B6%E7%9A%84%E5%A4%84%E7%90%86">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/3617779.html</link>
   <author>fireshort</author>
   <pubDate>Thu, 19 Oct 2006 12:28:01 +0800</pubDate>
  </item>
  <item>
   <title>工作流和MIS的关系</title>
   <description><![CDATA[<span class="postbody">一些摘录： <br /><br />流程控制和业务逻辑是不能完全分离的,只能实现松散耦合 <br /><br />各自为政的同时达到协同办公 <br />这方面做得比较好的是ＢＰＥＬ，松耦合。 <br />可定制可编排的服务。 <br /><br />工作流和MIS应该说是二种系统 <br /><br />现在有好多MIS是建立在工作流系统上的 <br /><br />工作流本身是一种支撑系统,得和别的管理系统结合才能用,本身单独用是没什么用处的 <br /><br />和别的管理系统结合也还是一个管理系统 <br /><br />工作流管理系统是包含工作流引擎和一些流程管理功能的系统 <br /><br />仅限工作流本身 <br /><br />其他管理系统可以建立在工作流管理系统之上 <br />这二个不是简单的结合关系 <br />是有层次的 <br /><br />你单独把工作流管理系统买给一个客户试试,看他们怎么去用 <br />形象化一些，给我打个比方也行啊。 <br />就比如流程定义不能把页面风格也订出来吧,还得用其他的系统来完成这些工作 <br />比如说吧,一个政府单位要一个办公自动化系统,这里就需要一个工作流管理系统+业务管理系统,而且这些业务管理系统就是说建立在工作流管理系统之上的,用户看到的是一些业务界面,后台由工作流管理系统提供流程支撑</span><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/2777500.html">备忘：jbpm3 生成oracle 的建表脚本过程。</a> 2006年07月06日</div><div><a href="http://fireshort.blogbus.com/logs/1514576.html">结合ToolAgent与自定义数据类型实现下拉列表</a> 2005年10月18日</div><div><a href="http://fireshort.blogbus.com/logs/1437760.html">shark的学习路线</a> 2005年09月15日</div><div><a href="http://fireshort.blogbus.com/logs/1405352.html">how to use the Deadline Activity property</a> 2005年09月02日</div><div><a href="http://fireshort.blogbus.com/logs/1116968.html">nezha(哪吒)－又一个可视化的XPDL工作流建模工具</a> 2005年04月13日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F3234877.html&title=%E5%B7%A5%E4%BD%9C%E6%B5%81%E5%92%8CMIS%E7%9A%84%E5%85%B3%E7%B3%BB">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/3234877.html</link>
   <author>fireshort</author>
   <pubDate>Tue, 05 Sep 2006 09:51:07 +0800</pubDate>
  </item>
  <item>
   <title>j2ee系统与rtx的整合实现</title>
   <description><![CDATA[<p>     在rtx的论坛可以看到很多类似下面的论调：<br />    “您好,所有用我们的api开发的jsp或java程序都必须放在SDK的安装包的java目录下,与RTXSvrApi.java同一目录(注意不能单独 copy出RTXSvrApi.java文件）。”简直让人吐血不止啊，幸好实际情形不是这样（也不可能是这样，要这样tx的程序员都找块豆腐撞死算了，否则也会给其他的java开发者口水淹死:-)）。实际情形是：可以单独copy出RTXSvrApi.java，只是不能改掉RTXSvrApi.java的包名。</p><p>整合步骤(在3.61版本下通过)：<br />    1、将Crypt.dll、RTXParser.dll、SDKAPI.dll、SDKAPIC.dll、SDKAPIJava.dll复制到%windir%\system32目录下面；<br />    2、定义一个简单的servlet：RtxServlet，覆盖doGet方法，在服务器端获得sessionkey，并传给客户端：<br />    protected void doGet(HttpServletRequest request,HttpServletResponse response)<br />            throws ServletException,IOException<br />    {<br />        RTXSvrApi RtxsvrapiObj=new RTXSvrApi();<br />        if(RtxsvrapiObj.Init())<br />        {<br />            String userID=new OperatorAdminObj().getCurrentUserId(request);<br />            String sessionKey=RtxsvrapiObj.GetSessionKey(userID);<br />            request.setAttribute(&quot;loginUser&quot;,userID);<br />            request.setAttribute(&quot;rtxSessionKey&quot;,sessionKey);<br />            RtxsvrapiObj.UnInit();<br />        }<br />        getServletContext().getRequestDispatcher(&quot;/rtx/rtx.jsp&quot;).forward(<br />                request,response);<br />    }<br />    3、在rtx.jsp中，在客户端调用activex控件，自动登录rtx客户端。<br />&lt;%@ page contentType=&quot;text/html; charset=utf-8&quot; %&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />&lt;title&gt;rtx&lt;/title&gt;<br />&lt;script type=&quot;text/javascript&quot; src=&quot;javascript/global.js&quot;&gt;&lt;/script&gt;<br />&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css/style.css&quot;&gt;<br />&lt;script language=&quot;vbscript&quot;&gt;<br />Sub window_onload<br />   Set objProp = RTXAX.GetObject(&quot;Property&quot;)<br />   objProp.Value(&quot;RTXUsername&quot;) = &quot;${loginUser}&quot;<br />   objProp.Value(&quot;LoginSessionKey&quot;) = &quot;${rtxSessionKey}&quot;<br />   objProp.Value(&quot;ServerAddress&quot;) = &quot;127.0.0.1&quot;<br />   objProp.Value(&quot;ServerPort&quot;) = 8000<br />   RTXAX.Call 2, objProp<br />   window.close<br />End Sub<br />&lt;/script&gt;<br />&lt;/head&gt;</p><p>&lt;body bgcolor=&quot;#FFFFFF&quot; leftmargin=&quot;0&quot; topmargin=&quot;0&quot; &gt;<br />&lt;OBJECT id=RTXAX<br />data=data:application/x-oleobject;base64,fajuXg4WLUqEJ7bDM/7aTQADAAAaAAAAGgAAAA==<br />classid=clsid:5EEEA87D-160E-4A2D-8427-B6C333FEDA4D VIEWASTEXT&gt;<br />&lt;/OBJECT&gt;<br />&lt;/body&gt;<br />&lt;/html&gt; <br />     4、在你的系统登录验证完毕后，通过打开新窗口调用RtxServlet，<br />window.open(&quot;RtxServlet&quot;,&quot;&quot;,&quot;&quot;)就可以了。</p><p>    rtx这种通过SessionKey的方式来实现其他系统与其的集成，对程序员来说是很方便的，但有其安全性问题：系统管理员可以很容易在服务器端获得SessionKey，再冒充其他人登录。不过这个世界上从无攻不破的堡垒，没有最好，只有更好。</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/4359776.html">用Java进行LDAP编程的方式</a> 2007年01月23日</div><div><a href="http://fireshort.blogbus.com/logs/3617779.html">Java中对有BOM头的UTF-8文件的处理</a> 2006年10月19日</div><div><a href="http://fireshort.blogbus.com/logs/1727844.html">commons-fileupload中文乱码问题的解决</a> 2005年12月20日</div><div><a href="http://fireshort.blogbus.com/logs/1518064.html">javadbf中文问题的解决</a> 2005年10月19日</div><div><a href="http://fireshort.blogbus.com/logs/1420670.html">操作dbf的类库</a> 2005年09月08日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F2918289.html&title=j2ee%E7%B3%BB%E7%BB%9F%E4%B8%8Ertx%E7%9A%84%E6%95%B4%E5%90%88%E5%AE%9E%E7%8E%B0">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/2918289.html</link>
   <author>fireshort</author>
   <pubDate>Thu, 27 Jul 2006 14:05:26 +0800</pubDate>
  </item>
  <item>
   <title>备忘：jbpm3 生成oracle 的建表脚本过程。</title>
   <description><![CDATA[<p>来自：（William(19694559) ），未测试过，不过应该可以，反正我自己生成<a href="http://www.mysql.com/" target="_blank">mysql</a>的建表脚本没有碰到什么困难。</p><p>jbpm3 生成oracle 的建表脚本过程。</p><p>1 下载jbpm-db 这个部件。我下载的是jbpm-starters-kit-3.1.zip ，里边就包含了jbpm-db部分。<br />2 修改 xx\jbpm-starters-kit-3.1\jbpm-db 下的 build.properties 文件中的 jbpm.3.location内容，<br />  修改成你当前要用的jbpm的位置。我下载的是jbpm3.1，放在我自己的 E:\software\java\jbpm-3.1 这个位置。那么我们可以<br />  把内容修改成：jbpm.3.location=E:\\software\\java\\jbpm-3.1\\ 。虽然jbpm的说明中建议用相对路径，可是不知道为什么在我机器上就不正常。不过这么写，也可以。其他内容不用改了。<br />3  修改 xx\jbpm-starters-kit-3.1\jbpm-db下的 build.xml 文件，这个文件中，虽然把oracle 或者db2的脚本生成进行了描述<br />  但是却在编译命令中没有加载。所以我们只需要加一点内容就可以了：<br />  <br />    找到下边内容 <br />    <br />     &lt;target name=&quot;all.tests&quot; <br />    depends=&quot;daffodildb.test,derby.test,firebird.test,<br />          hsqldb.test,mssql.test,mysql.test,postgresql.test,sybase.test&quot; <br />    description=&quot;test jBPM on all databases and produces html reports in the build directory&quot;/&gt; </p><p>  &lt;target name=&quot;all.scripts&quot; <br />    depends=&quot;prepare,daffodildb.scripts,derby.scripts,<br />          firebird.scripts,hsqldb.scripts,mssql.scripts,mysql.scripts,<br />          postgresql.scripts,sybase.scripts&quot; <br />    description=&quot;generates all database scripts for all databases in the build directory&quot;/&gt; <br />    <br />    改成  &lt;target name=&quot;all.tests&quot; <br />    depends=&quot;daffodildb.test,derby.test,firebird.test,<br />          hsqldb.test,mssql.test,mysql.test,postgresql.test,oracle.test,sybase.test&quot; <br />    description=&quot;test jBPM on all databases and produces html reports in the build directory&quot;/&gt; </p><p>  &lt;target name=&quot;all.scripts&quot; <br />    depends=&quot;prepare,daffodildb.scripts,derby.scripts,<br />          firebird.scripts,hsqldb.scripts,mssql.scripts,mysql.scripts,<br />          postgresql.scripts,oracle.scripts,sybase.scripts&quot; <br />    description=&quot;generates all database scripts for all databases in the build directory&quot;/&gt;  <br />    <br />    相信我们也能看出来，这两段内容我们可以去掉那些你不想此次编译出来的脚本，比如不想编译出来 mysql的脚本<br />    那么就把 mysql.test  和 mysql.scripts 去掉吧。别忘了逗号。<br />    <br /> 4  还剩下一步： 把oracle的驱动 （或db2的什么的）放在 xx\jbpm-starters-kit-3.1\jbpm-db\oracle\lib 下。<br /> 5  配置好你的ant，然后到    放在 xx\jbpm-starters-kit-3.1\jbpm-db\ 执行一下ant 就可以在xx\jbpm-starters-kit-3.1\jbpm-db\build<br />    下去找你的脚本了。<br /> 6  当然还可以用其他工具来生成，因为所有这一切脚本都是基于hibernate的描述文件所生成的（jbpm中带的*.hbm.xml）。    <br /> 7  上边所设计到目录的地方，有xx\ ，是你自己的某个目录而已。</p><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/3234877.html">工作流和MIS的关系</a> 2006年09月05日</div><div><a href="http://fireshort.blogbus.com/logs/1514576.html">结合ToolAgent与自定义数据类型实现下拉列表</a> 2005年10月18日</div><div><a href="http://fireshort.blogbus.com/logs/1437760.html">shark的学习路线</a> 2005年09月15日</div><div><a href="http://fireshort.blogbus.com/logs/1405352.html">how to use the Deadline Activity property</a> 2005年09月02日</div><div><a href="http://fireshort.blogbus.com/logs/1116968.html">nezha(哪吒)－又一个可视化的XPDL工作流建模工具</a> 2005年04月13日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F2777500.html&title=%E5%A4%87%E5%BF%98%EF%BC%9Ajbpm3+%E7%94%9F%E6%88%90oracle+%E7%9A%84%E5%BB%BA%E8%A1%A8%E8%84%9A%E6%9C%AC%E8%BF%87%E7%A8%8B%E3%80%82">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/2777500.html</link>
   <author>fireshort</author>
   <pubDate>Thu, 06 Jul 2006 14:00:00 +0800</pubDate>
  </item>
  <item>
   <title>eXtremeTable的“action”参数问题</title>
   <description><![CDATA[    在缺省情况下，如果url中有action参数，则在IE中eXtremeTable中将不能排序、过滤，而在FireFox中则一切正常。这个问题的产生原因是：eXtremeTable缺省情况下AutoIncludedParameters为true，则自动将url传进来的参数用hidden field的方式继续传来传去。这个本来也没有什么问题，但是form也有action属性，这两个就产生了冲突。IE与FireFox处理冲突的方法不一样，得到了不一样的结果，这点一开始让我很郁闷。<br />    知道了问题所在，解决就简单了，只要将AutoIncludedParameters设为false就可以了。（我自己也不喜欢将那么多参数自动的传来传去的）。<br />
<!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/5560966.html">失望，Linuxer编辑的认识高度</a> 2007年05月29日</div><div><a href="http://fireshort.blogbus.com/logs/2918289.html">j2ee系统与rtx的整合实现</a> 2006年07月27日</div><div><a href="http://fireshort.blogbus.com/logs/1727844.html">commons-fileupload中文乱码问题的解决</a> 2005年12月20日</div><div><a href="http://fireshort.blogbus.com/logs/1315562.html">产生GUID的Java工具类</a> 2005年07月16日</div><div><a href="http://fireshort.blogbus.com/logs/1263543.html">wsh改名脚本</a> 2005年06月13日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F2087266.html&title=eXtremeTable%E7%9A%84%E2%80%9Caction%E2%80%9D%E5%8F%82%E6%95%B0%E9%97%AE%E9%A2%98">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/2087266.html</link>
   <author>fireshort</author>
   <pubDate>Sat, 18 Mar 2006 10:37:50 +0800</pubDate>
  </item>
  <item>
   <title>commons-fileupload中文乱码问题的解决</title>
   <description><![CDATA[<span class="postbody">在广州地铁管理后台中使用了commons-fileupload来上传文件，发现中文路径或文件名都会变成乱码。但是上传部分的代码是已经在我们的QuickOA里面应用了的，而在QuickOA里面完全没有乱码问题。搜索fileupload的代码，发现在 FileUploadBase类里面有setHeaderEncoding方法，根据其说明，当读取上传表单的各部分时会用到该encoding，如果没有指定encoding则使用系统缺省的encoding。在QuickOA中因为页面是使用“GBK”编码，所以在简体中文的系统下面不会有乱码问题；而在广州地铁管理后台中页面是使用“UTF-8”编码，就必须指定编码。考虑到QuickOA以后有可能运行在英文或繁体中文之类的系统中，在 QuickOA中也指定编码。 <br /></span><table cellspacing="1" cellpadding="3" width="90%" align="center" border="0"><tbody><tr><td><span class="genmed"><b>代码:</b></span></td></tr><tr><td class="code">    /** <br />     * Specifies the character encoding to be used when reading the headers of <br />     * individual parts. When not specified, or &lt;code&gt;null&lt;/code&gt;, the platform <br />     * default encoding is used. <br />     * <br />     * @param encoding The encoding used to read part headers. <br />     */ <br />    public void setHeaderEncoding(String encoding) <br />    { <br />        headerEncoding = encoding; <br />    }</td></tr></tbody></table><span class="postbody"></span><span class="postbody"><br /></span><!--sp--><div class="relpost"><br/><h3>随机文章：</h3><div><a href="http://fireshort.blogbus.com/logs/4359776.html">用Java进行LDAP编程的方式</a> 2007年01月23日</div><div><a href="http://fireshort.blogbus.com/logs/3617779.html">Java中对有BOM头的UTF-8文件的处理</a> 2006年10月19日</div><div><a href="http://fireshort.blogbus.com/logs/2918289.html">j2ee系统与rtx的整合实现</a> 2006年07月27日</div><div><a href="http://fireshort.blogbus.com/logs/1518064.html">javadbf中文问题的解决</a> 2005年10月19日</div><div><a href="http://fireshort.blogbus.com/logs/1420670.html">操作dbf的类库</a> 2005年09月08日</div></div><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://del.icio.us/post?v=4&noui&jump=close&url=http%3A%2F%2Ffireshort.blogbus.com%2Flogs%2F1727844.html&title=commons-fileupload%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E5%86%B3">Del.icio.us</a></span></div>]]></description>
   <link>http://fireshort.blogbus.com/logs/1727844.html</link>
   <author>fireshort</author>
   <pubDate>Tue, 20 Dec 2005 20:07:41 +0800</pubDate>
  </item>
 </channel>
</rss>
