﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Hello World</title><link>http://www.blogjava.net/yoda/</link><description>如切如磋,如琢如磨</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 14:35:10 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 14:35:10 GMT</pubDate><ttl>60</ttl><item><title>Everything, 文件查找不可以快成这样！</title><link>http://www.blogjava.net/yoda/archive/2012/03/08/371529.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Thu, 08 Mar 2012 06:38:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2012/03/08/371529.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/371529.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2012/03/08/371529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/371529.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/371529.html</trackback:ping><description><![CDATA[<p>　　个人觉得，Windows 7是微软目前最好的操作系统产品，尤其是对于键盘流来说，按一下Win键，然后直接键入一些字符，就可以找到对应的应用快捷方式，然后启动，非常的方便。但是如果要在整个硬盘上查找文件，那就稍微有点慢了。因为Windows 7也是需要先把文件进行索引，然后才能够提高查找速度的。如果你的硬盘上文件太多，但是基本上都记得文件名中的关键字，那么，请尝试一下Everything吧！这个是从<a href="http://www.appinn.com/" target="_blank">小众软件</a>上看到的东东，据说已经是很多人的必备利器了。安装感受一下，真是觉得相见恨晚啊！</p> <p>　　Everything的安装文件仅有334KB，语言包173KB。别看身材小，查找效率那是刚刚地！安装之后，一运行，包含了21万个文件的数据库就建立好了，才1.4MB！运行界面，就是这么简单：</p> <p><a href="http://www.blogjava.net/images/blogjava_net/yoda/Windows-Live-Writer/Everything-_CAD1/image_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.blogjava.net/images/blogjava_net/yoda/Windows-Live-Writer/Everything-_CAD1/image_thumb.png" width="485" height="600"></a></p> <p>&nbsp;</p> <p>　　这个小巧的东西，还可以支持正则表达式的查找。但是，它只能根据文件名查找，不是全文索引的（否则也不会这么小巧）。但是，这已经足够了。还有一些其他的高级选项，比如它提供一个简单的HTTP的服务器，可以远程搜索和下载文件。总而言之，这东西，简直就是键盘流的救世主啊！</p> <p>　　下载地址：<a href="http://www.voidtools.com/download.php">http://www.voidtools.com/download.php</a>，安装包和语言包都在这里下载就可以了。</p><img src ="http://www.blogjava.net/yoda/aggbug/371529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2012-03-08 14:38 <a href="http://www.blogjava.net/yoda/archive/2012/03/08/371529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Error message: &amp;quot;Internet Explorer cannot download a file&amp;quot;</title><link>http://www.blogjava.net/yoda/archive/2012/02/29/371035.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 29 Feb 2012 13:45:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2012/02/29/371035.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/371035.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2012/02/29/371035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/371035.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/371035.html</trackback:ping><description><![CDATA[<p>首先声明，这个问题，只在IE6上会发生，IE8上是没有此问题的，IE7未测试。<br>IE6是一个很奇怪的东西，估计很多开发人员对于IE6是非常头疼的。貌似微软一向喜欢弄这样的幺蛾子，就像当年的Microsoft JVM + Visual J++，虽然是好东西，但是由于未遵循标准规范，被Java组织给踢了出去，然后就不了了之了。</p> <p>现在的应用中，文件下载的功能是很常见的。通常的做法是，文件被存放在服务器的某个路径，然后由应用去读取文件，再通过设置响应头来让浏览器进行响应的动作。如果希望浏览器能够识别文件名，通常的做法是设置响应头中的Content-Disposition属性：</p> <p><font face="Consolas">response.setContentType("application/octet-stream");<br>response.addHeader("Content-Disposition", "attachment; filename=xxx.xls");</font></p> <p>如果要能够让IE正确的处理中文文件名，则需要对中文文件名进行UTF-8编码：<br><font face="Consolas">response.addHeader("Content-Disposition", String.format("attachment;filename=%s", java.net.URLEncoder.encode("中文.xls", "UTF-8")));</font></p> <p>编码后的“中文.xls”为：“%E4%B8%AD%E6%96%87.xls”。</p> <p>通常，这种模式是没有问题的，但是如果文件名很长，就会出现“无法下载文件”的错误。</p> <p>经过查找资料，在IE6上存在这样的问题，微软的文档（<a href="http://support.microsoft.com/kb/816868?LN=en-us）中说：">http://support.microsoft.com/kb/816868?LN=en-us）中说：</a></p> <p>This behavior occurs because the content disposition header for the file stream is greater than approximately 150 bytes and the Latin character set is equal to 150 characters. This behavior may occur if the content disposition header is formatted with a non-Latin character set, such as Japanese or Russian.</p> <p>For example, a 17-character content disposition header in the Japanese character set is 153 bytes because the UTF-8 encoding scheme uses 9 bytes to represent a single Japanese character, but it uses only 1 byte in the Latin character set.</p> <p>也就是说，对于Content-Disposition这个响应头，IE6仅能处理150字节左右，再长了就处理不了了。对于如何解决这个问题，微软的原文中也是闪烁其词，说是有一个Hotfix，但是又说需要进一步测试……</p> <p>如何解决问题呢？尝试在Web上放置一个很长中文名得文件，然后直接在IE6地址栏中输入这个文件的全地址，下载、直接打开都是正常的。因为这种情况下，服务器给出的响应中不包含Content-Disposition段，估计是浏览器发现这是一个二进制流，然后就将URL中后面的部分当做文件名，所以文件名的处理都是浏览器在本地完成的，所以就避免了上面文档中提到的BUG。（此处纯属猜想）</p> <p>所以，解决的思路如下：<br>1. 在页面上生成的附件链接中，包含附件的ID信息以及文件名。例如：&lt;a href="/web/attachmentDownload/<em>id</em>/<em>attachmentName</em>.zip"&gt;附件&lt;/a&gt;<br>2. 在服务器端做一个Servlet，映射到路径 /attachmentDownload/*<br>3. Servlet获取到请求的URL，解析出附件的ID信息及文件名<br>4. Servlet设置响应头 response.setContentType("application/octet-stream") ，或者设置成附件对应的真实MIME-TYPE也可以。但是不设置Content-Disposition<br>5. 根据ID读取文件，向响应中写入文件流<br>6. flush</p> <p>测试了一下，是有效的一个办法。但是为神马觉得这个解决办法奇怪的很？简直有点不像正常人类的思维方式了-_-|||<br>就这样吧，神马都是浮云！</p><img src ="http://www.blogjava.net/yoda/aggbug/371035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2012-02-29 21:45 <a href="http://www.blogjava.net/yoda/archive/2012/02/29/371035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MacType,让你的Windows文字渲染更加漂亮</title><link>http://www.blogjava.net/yoda/archive/2012/02/29/371019.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 29 Feb 2012 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2012/02/29/371019.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/371019.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2012/02/29/371019.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/371019.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/371019.html</trackback:ping><description><![CDATA[<p>传说中，Windows的文字渲染和Mac OS的不同，很多人认为Mac OS的文字渲染的效果更好。如果遇上一个专业人士，他还可能摇头晃脑的和你讲解半天Windows和Mac OS文字渲染之间的具体技术差异，基本上，对于我这种非专业人士来说，这就相当于听天书了。</p> <p>作为一个IT民工，咱不能说为了一个传说中好看的文字渲染就去花大把的银子来买一台Mac Book玩儿。嗯，另外，我认识的人里面，买得起Mac Book的，基本上拿到货的第一件事儿就是找人给装一套Windows XP！</p> <p>无意间在<a href="http://www.appinn.com/" target="_blank">小众软件</a>看到一个东东，叫做MacType的，很可能很多人都知道，是俺孤陋了。这个MacType是做啥子的呢?很简单，就是在Win32上模仿Mac OS的文字效果。于是乎，就在<a href="http://www.getmactype.com/" target="_blank">MacType</a>的官网下载一份儿来玩玩，免费的哦！一开始用这个东西吧，还真是有点不习惯那种发虚的感觉。但是先不管他什么感觉，用上两天再说&#8230;&#8230;两天之后，再关掉MacType使用Windows 7的本尊渲染引擎，发现竟然有点不习惯Windows那种有点干涩的ClearType了！</p> <p>来一张对比图片吧</p> <p><a href="http://www.blogjava.net/images/blogjava_net/yoda/Windows-Live-Writer/MacTypeWindows_F108/mactype_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="mactype" border="0" alt="mactype" src="http://www.blogjava.net/images/blogjava_net/yoda/Windows-Live-Writer/MacTypeWindows_F108/mactype_thumb.png" width="696" height="768" /></a></p> <p>&nbsp;</p> <p>感受一下吧~~~~</p> <p>遗憾的是，MacType对于宋体字的渲染不是很合我的胃口，也可能是因为没有找到合适的设置。慢慢研究一下吧~~</p><img src ="http://www.blogjava.net/yoda/aggbug/371019.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2012-02-29 17:24 <a href="http://www.blogjava.net/yoda/archive/2012/02/29/371019.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring LdapTemplate 连接 LDAP 服务器缓慢的问题</title><link>http://www.blogjava.net/yoda/archive/2012/02/29/371011.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 29 Feb 2012 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2012/02/29/371011.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/371011.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2012/02/29/371011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/371011.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/371011.html</trackback:ping><description><![CDATA[<p>同样的一段代码，在我的机器上是OK的，在测试环境也是OK的。就是到了新来的同事机器上，那叫一个慢啊。输入用户名口令，登录，需要等待1分钟&#8230;&#8230;</p> <p>初步判断肯定是LdapTemplate做操作的时候花费了很长的时间。LdapTemplate的配置如下：</p> <p><font face="Consolas">&lt;bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="url" value="ldap://192.168.1.77:389/dc=cn,dc=earth"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="userDn" value="cn=root"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="password" value="tjmc123"/&gt;<br />&lt;/bean&gt;<br />&lt;bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="contextSource" ref="contextSource"/&gt;<br />&lt;/bean&gt;</font>&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;</p> <p>但是还是看不出问题。实在是百思不得其解了，只好查看Thread dump了，在这里花费了很长的时间：</p> <p><font face="Consolas">"qtp22172629-23" prio=5 tid=0x1741d1d0 nid=0x1760 runnable [0x17f9e000..0x17f9fd68]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.Inet4AddressImpl.getHostByAddr(Native Method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress$1.getHostByAddr(InetAddress.java:842)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress.getHostFromNameService(InetAddress.java:532)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress.getHostName(InetAddress.java:475)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetAddress.getHostName(InetAddress.java:447)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.InetSocketAddress.getHostName(InetSocketAddress.java:210)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:341)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.Socket.connect(Socket.java:507)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.Socket.connect(Socket.java:457)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.Socket.(Socket.java:365)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.Socket.(Socket.java:178)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.sun.jndi.ldap.Connection.createSocket(Connection.java:346)<br />......</font></p> <p>看起来，是在尝试解析主机域名/地址信息。可是我配置的是IP地址啊，为啥还去解析？先不管这些了，先在本地hosts文件中配置一下LDAP服务器的别名吧。配置完本地hosts文件之后，测试，一切OK了。</p> <p>回想起来，因为我的机器和测试环境应用主机上都有LDAP服务器的别名配置，所以没有出现连接慢的问题，而新来的同事的hosts文件是干干净净的，所以，杯具了&#8230;&#8230;</p> <p>//------------------------------------</p> <p>分析了Spring-ldap的代码以及关键的类InetSocketAddress，过程大概是这样的：</p> <p>spring-ldap的LdapContextSource会把设置的属性url的值中，ldap://和端口之间的字符串当做主机名（注意，是当做主机名，是String对象，不是地址）传入给LdapClient去建立和LDAP服务器之间的连接。而LdapClient通过层层调用之后，最终通过构造器InetSocketAddress(String hostname, int port) 创建了InetSocketAddress对象。</p> <p>在JDK的文档上关于InetSocketAddress(String hostname, int port)有如下描述：</p> <p>Creates a socket address from a hostname and a port number. <br />An attempt will be made to resolve the hostname into an InetAddress. If that attempt fails, the address will be flagged as unresolved.</p> <p>无需再解释什么了&#8230;&#8230;</p> <p>回头想想，介绍spring-ldap的文章也好，示例代码也好，基本上都是在url上写域名，很少见写地址的，看来，spring-ldap是鄙视IP地址的方式访问LDAP服务器的了。</p> <p>环境列表：</p> <p>Sun HotSpot JDK 1.5.0_05</p> <p>Spring-ldap: 1.3.0</p> <p>Spring: 3.0.4</p> <p>&nbsp;</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e5f6f45a-b06d-496a-80bb-16531c392c05" class="wlWriterEditableSmartContent">Technorati 标签: <a href="http://technorati.com/tags/Spring" rel="tag">Spring</a>,<a href="http://technorati.com/tags/LdapTemplate" rel="tag">LdapTemplate</a>,<a href="http://technorati.com/tags/LDAP" rel="tag">LDAP</a></div><img src ="http://www.blogjava.net/yoda/aggbug/371011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2012-02-29 16:41 <a href="http://www.blogjava.net/yoda/archive/2012/02/29/371011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>还是决定把技术的博客在这里继续了</title><link>http://www.blogjava.net/yoda/archive/2012/02/29/371000.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 29 Feb 2012 07:26:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2012/02/29/371000.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/371000.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2012/02/29/371000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/371000.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/371000.html</trackback:ping><description><![CDATA[虽然有一段时间不写技术的博客了，但是还是觉得将技术的博客和非技术的分开来比较好，还是在这里继续我的技术博客吧<img src ="http://www.blogjava.net/yoda/aggbug/371000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2012-02-29 15:26 <a href="http://www.blogjava.net/yoda/archive/2012/02/29/371000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebSphere 更新应用后请求静态资源出现 503 错误</title><link>http://www.blogjava.net/yoda/archive/2012/02/29/370999.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 29 Feb 2012 07:24:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2012/02/29/370999.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/370999.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2012/02/29/370999.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/370999.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/370999.html</trackback:ping><description><![CDATA[<div>系统环境：WebSphere 6.1.0.25 Network Deployment， 有集群，前端用IBM Http Server Plugin</div><div></div><div>事情是这样的，由于本集群上有多个应用，所以在更新应用时不可以重启App Server。同时，在集群环境中，如果直接更新应用，会自动触发WAS集群中的App Server重启。所以我们更新应用的习惯是，先停止应用，再卸载，然后再部署新的版本。</div><div></div><div>在这样的应用更新实施之后，出现过两次这样的情况：部署后的新应用，功能都正常，就是样式全丢了。使用Firefox的Firebug跟踪一下，发现是在请求style.css时，服务器给了503 Service Unavailable的响应。检查服务器上应用部署目录，物理文件都在，访问权限也正常，但是就是无法正确请求到这个文件。</div><div></div><div>搜索了很多文档，终于找到了这个问题的原因，属于WAS的Bug：</div><div></div><div>PK80333: CANNOT DISPLAY A CERTAIN GIF FILE</div><div></div><div>大意是说：当应用正在停止的时候，在某个很短的时间段内，如果服务器接收到一个静态资源（css, js, html, 图片等）的请求，此时，这个静态资源会被服务器标识为永久性不可用。即使应用再次启动，访问这个静态资源，服务器也会给出503 Service Unavailable的响应。但是对于动态资源，例如JSP和Servlet就不存在这个问题。</div><div></div><div>这个问题在6.0.1.27修复。</div><div></div><div>&nbsp;</div><div></div><div>或者，重新启动App Server，也会恢复。</div><div></div><div>并且，在发生故障的场景中，应用启动之后，如果换一个域名访问此静态资源，就是正常的。</div><div></div><div>比如说：http://xx.com/styles/style.css 请求正好在应用停止的那个片刻到达服务器，那么后续所有的对于http://xx.com/styles/style.css的请求都会收到503的响应。但是如果换一个指向同一地址的http://xx1.com/styles/style.css请求，则是正常的。</div><div></div><div>以下是原文：</div><div></div><div>&nbsp;</div><div></div><div>Problem summary</div><div>****************************************************************</div><div>* USERS AFFECTED: &nbsp;IBM WebSphere Application Server Version 6.1*</div><div>* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;and Version 7.0 users. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*</div><div>****************************************************************</div><div>* PROBLEM DESCRIPTION: All requests for a static file result &nbsp; *</div><div>* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;in a &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*</div><div>* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Servlet.has.become.temporarily.unavaila *</div><div>* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ble.for.service exception. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*</div><div>****************************************************************</div><div>* RECOMMENDATION: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*</div><div>****************************************************************</div><div>When an application is being stopped a small timing window</div><div>exists during which, if a request for a static file is</div><div>received, the static file will become permanently unavailable</div><div>even after the application has been restarted. Once the static</div><div>file has become permanently unavailable all requests for the</div><div>file will result in a</div><div>Servlet.has.become.temporarily.unavailable.for.service</div><div>exception. The problem will persist until the server on which</div><div>the application is running is restarted.</div><div></div><div>Note the problem &nbsp;occurs for static files only and not, for</div><div>example, for servlets and JavaServer Pages (JSPs).</div><div>Problem conclusion</div><div>The WebContainer has been modified to remove the timing window</div><div>so that a request for a static file during application stop</div><div>cannot cause the static file to become permanently unavailable.</div><div></div><div>The fix for this APAR is currently targeted for inclusion in</div><div>fix packs 6.1.0.27 and 7.0.0.5.&nbsp;</div><img src ="http://www.blogjava.net/yoda/aggbug/370999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2012-02-29 15:24 <a href="http://www.blogjava.net/yoda/archive/2012/02/29/370999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Ubuntu上安装WebSphere 6.1，创建profile失败的问题</title><link>http://www.blogjava.net/yoda/archive/2010/08/11/328584.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 11 Aug 2010 15:48:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2010/08/11/328584.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/328584.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2010/08/11/328584.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/328584.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/328584.html</trackback:ping><description><![CDATA[在Ubuntu 10.04 LTS上安装完毕WebSphere 6.1之后，要创建profile，但是pmt工具界面很长时间没有反应，最后检查创建日志：<br />
<br />
&lt;message&gt;Checking for wsadmin listener initialization&lt;/message&gt;<br />
&lt;message&gt;Is wsadmin listener available? ? false&lt;/message&gt;<br />
&lt;message&gt;Returning with returnCode=-1&lt;/message&gt;<br />
&lt;message&gt;Failure detected in fatal config action.&lt;/message&gt;<br />
&lt;message&gt;wsadmin failed with exception = wsadmin task failed with return code :-1&lt;/message&gt;<br />
<br />
要解决这个问题，需要将sh指向bash<br />
使用root用户进行如下操作：<br />
<br />
cd /bin<br />
unlink sh<br />
ln -s /bin/bash sh<br />
<br />
然后继续使用pmt工具创建，就可以成功了<br />
<br />
<img src ="http://www.blogjava.net/yoda/aggbug/328584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2010-08-11 23:48 <a href="http://www.blogjava.net/yoda/archive/2010/08/11/328584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>删除WebSphere 6.1无效的概要文件</title><link>http://www.blogjava.net/yoda/archive/2010/08/11/328578.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 11 Aug 2010 15:15:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2010/08/11/328578.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/328578.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2010/08/11/328578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/328578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/328578.html</trackback:ping><description><![CDATA[今天在鼓捣WebSphere的时候，想要创建一个Profile，但是在创建过程中，进程被我强制终止了，导致创建失败。<br />
如果再次运行pmt，就会发现未创建成功的Profile名字Dmgr01已经被占用，新的名字已经变成了Dmgr02了<br />
但是使用manageprofile.sh -listProfiles又是空的。要删除无效的Profile需要：<br />
1. $WAS_HOME/bin/manageprofile.sh -validateAndUpdateRegistry<br />
&nbsp;&nbsp;&nbsp; 这个命令列出无效的Profile<br />
2. $WAS_HOME/bin/manageprofile.sh -delete -profileName Dmgr01<br />
<br />
<br />
就可以删除无效的Profile，可以重新使用未成功Profile的名字Dmgr01了<br />
<br />
<img src ="http://www.blogjava.net/yoda/aggbug/328578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2010-08-11 23:15 <a href="http://www.blogjava.net/yoda/archive/2010/08/11/328578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 随手记</title><link>http://www.blogjava.net/yoda/archive/2010/07/28/327162.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Wed, 28 Jul 2010 14:38:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2010/07/28/327162.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/327162.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2010/07/28/327162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/327162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/327162.html</trackback:ping><description><![CDATA[Ubuntu 10.04，GNOME 环境<br />
<br />
1. 输入法<br />
&nbsp;&nbsp;&nbsp; Ubuntu 10.04自带的是iBUS输入法，后来尝试了SCIM，感觉也不是非常好。最终还是换成了小企鹅输入法，从www.fcitx.org可以下载。有这么几个注意事项：<br />
<br />
1.1 由于我的系统考虑到开发方便就把LANG设置为zh_CN.utf8，所以安装小企鹅输入法最好也去下载utf8版本的，在 http://code.google.com/p/fcitx/downloads/list 可以下载到，直接地址： http://code.google.com/p/fcitx/downloads/detail?name=fcitx-utf8-svn_3.6.3-20100713-r387_i386.deb&amp;can=2&amp;q=<br />
<br />
1.2 fcitx的3.6.3版本开始，配置文件存放到~/.config/fcitx/config (如果是utf-8的版本，应该是~/.config/fcitx-utf8/config文件)<br />
<br />
1.3 fcitx 3.6.3版本支持皮肤，所以有些配置放到了皮肤上，比如字号和字体什么的， 皮肤的配置文件在 /usr/share/fcitx/skin/skin_name/fcitx_skin.conf<br />
<br />
小企鹅输入法安装完毕之后的界面乱码主要是字体设置的问题，在皮肤的配置文件中把字体设置为可以支持中文的，例如文泉驿微米黑就好<br />
<br />
2. gedit对文件编码的识别<br />
&nbsp;&nbsp;&nbsp; 默认情况下，gedit对于文件的编码的自动识别仅限于UTF-8, ISO-8859-1, UTF-16，如果是用GBK编码保存的文本文件，那么其中的字符将无法被gedit正确识别。要对gedit的编码检测选项进行设置：在终端运行: gconf-editor，出现一个用来设定参数的窗口，在左侧树找到apps&gt;geditor-2&gt;encodings，右侧属性：auto_detected，双击该属性，进入编辑状态，点击&#8220;添加&#8221;按钮，将GBK或者GB18030加入到自动检测编码列表中。这个感觉有点像Windows的注册表了<br />
<br />
3. 终端不执行.profile文件<br />
&nbsp;&nbsp;&nbsp; 默认情况下，点开一个终端窗口，是不会自动执行用户的profile设置的。在终端窗口菜单：编辑&gt;配置文件首选项，&#8220;标题和命令&#8221;标签页，选中&#8220;以登录Shell方式运行命令&#8221;，再打开的终端就会自动执行.profile或者其他脚本环境对应的用户profile<br />
<br />
4. MPlayer对于DVD字幕idx和sub的支持<br />
&nbsp;&nbsp;&nbsp; 我用的GNOME MPlayer，默认情况下要设置字幕字体为中文的字体。如果是DVD字幕，后缀是idx和sub的，只要将字幕文件的名称设定成和视频文件相同（后缀不同，idx和sub文件名都要修改），那么在播放视频的时候，虽然GNOME MPlayer提示说无法加载字幕，但是依然是可以使用的。对于纯文本的字幕，例如srt的，有时候也会提示无法加载字幕，通常是由于字幕字体设置不支持中文，或者字幕文件本身的编码问题。我习惯将srt的字幕文件，在gedit中另存为UTF-8编码，并且是Unix风格换行符的，就可以正常显示了。后来发现 SMplayer比GNOME MPlayer更加的好用，或者说功能更复杂<br />
<br />
5. IM软件<br />
&nbsp;&nbsp;&nbsp; Ubuntu 10.04自带了一个集成聊天工具叫做Empathy，但是貌似这个东西不支持代理，所以只好再用Pidgin上MSN。上QQ就用腾讯自己出的QQ for Linux了，虽然功能简单，但是至少能够正常登录。<br />
<br />
6. agnclient<br />
&nbsp;&nbsp;&nbsp; agnclient是AT&amp;T的客户端，有For Linux版本的，但是是rpm安装包，首先需要用alien工具转换成deb的包，再进行安装。<br />
<br />
&nbsp;&nbsp;&nbsp; 安装完毕之后，会在/opt/agns下安装主程序文件，然后在/etc/rc.d/init.d下生成自动启动脚本，主要是启动用来记录日志的后台进程(agnLogd)和主进程的后台进程(agnclientd)。但是这两个脚本调用到了/etc/rc.d/init.d下的functions脚本，而functions脚本是Redhat上有，Ubuntu 10.04是没有的。于是，直接去/opt/agns/bin下运行angclientd，然后启动图形界面，启动了图形界面，还是连接不上。好吧直接运行NetVPN看看到底出了什么问题吧：<br />
<br />
yoda@yoda-t60:/opt/agns/bin$ ./NetVPN<br />
./NetVPN: error while loading shared libraries: libssl.so.4: cannot open shared object file: No such file or directory<br />
<br />
好吧，少了一个so的引用，那就创建一下引用：<br />
yoda@yoda-t60:/usr/lib$ ll | grep libssl<br />
-rw-r--r--&nbsp;&nbsp; 1 root root&nbsp;&nbsp; 199716 2010-04-11 05:32 libssl3.so<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10 2010-07-18 06:34 libssl3.so.1d -&gt; libssl3.so<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20 2010-07-18 06:34 libssl.so.0.9.8 -&gt; /lib/libssl.so.0.9.8<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24 2010-07-27 17:54 libssl.so.6 -&gt; /usr/lib/libssl.so.0.9.8<br />
<br />
yoda@yoda-t60:/usr/lib$ sudo ln -s /usr/lib/libssl.so.0.9.8 ./libssl.so.4<br />
Password or swipe finger: <br />
yoda@yoda-t60:/usr/lib$ ll | grep libssl<br />
-rw-r--r--&nbsp;&nbsp; 1 root root&nbsp;&nbsp; 199716 2010-04-11 05:32 libssl3.so<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10 2010-07-18 06:34 libssl3.so.1d -&gt; libssl3.so<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20 2010-07-18 06:34 libssl.so.0.9.8 -&gt; /lib/libssl.so.0.9.8<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24 2010-07-27 18:03 libssl.so.4 -&gt; /usr/lib/libssl.so.0.9.8<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24 2010-07-27 17:54 libssl.so.6 -&gt; /usr/lib/libssl.so.0.9.8<br />
<br />
继续运行NetVPN，还是报错：<br />
yoda@yoda-t60:/opt/agns/bin$ ./NetVPN<br />
./NetVPN: error while loading shared libraries: libcrypto.so.4: cannot open shared object file: No such file or directory<br />
<br />
好吧，那就继续创建：<br />
yoda@yoda-t60:/usr/lib$ ll | grep libcryp<br />
-rw-r--r--&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp; 44978 2010-06-14 22:35 libcrypt.a<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16 2010-07-19 15:38 libcryptopp.so.8 -&gt; libcrypto++.so.8<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 23 2010-07-18 06:34 libcrypto.so.0.9.8 -&gt; /lib/libcrypto.so.0.9.8<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 27 2010-07-27 17:54 libcrypto.so.6 -&gt; /usr/lib/libcrypto.so.0.9.8<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20 2010-07-19 15:38 libcrypto++.so.8 -&gt; libcrypto++.so.8.0.0<br />
-rw-r--r--&nbsp;&nbsp; 1 root root&nbsp; 4113372 2009-11-07 09:17 libcrypto++.so.8.0.0<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18 2010-07-18 01:02 libcrypt.so -&gt; /lib/libcrypt.so.1<br />
lrwxrwxrwx&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19 2010-07-18 06:34 libcryptui.so.0 -&gt; libcryptui.so.0.0.0<br />
-rw-r--r--&nbsp;&nbsp; 1 root root&nbsp;&nbsp;&nbsp; 63548 2010-04-09 18:08 libcryptui.so.0.0.0<br />
yoda@yoda-t60:/usr/lib$ sudo ln -s /usr/lib/libcrypto.so.0.9.8 ./libcrypto.so.4<br />
<br />
然后，继续运行NetVPN，可以给出错误信息了，那么说明所需要的链接库都OK了，启动客户端，设置口令密码，登录，成功...<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/yoda/aggbug/327162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2010-07-28 22:38 <a href="http://www.blogjava.net/yoda/archive/2010/07/28/327162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WebSphere 5.1 上如何修改已部署应用的web.xml</title><link>http://www.blogjava.net/yoda/archive/2010/07/15/326214.html</link><dc:creator>YODA</dc:creator><author>YODA</author><pubDate>Thu, 15 Jul 2010 10:31:00 GMT</pubDate><guid>http://www.blogjava.net/yoda/archive/2010/07/15/326214.html</guid><wfw:comment>http://www.blogjava.net/yoda/comments/326214.html</wfw:comment><comments>http://www.blogjava.net/yoda/archive/2010/07/15/326214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yoda/comments/commentRss/326214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yoda/services/trackbacks/326214.html</trackback:ping><description><![CDATA[<p>WebSphere 5.1上如果要修改已经部署的应用的web.xml，单纯修改installedApps目录下的web.xml是没有作用的，还要修改WebSphere生成的另外一份缓存文件：</p>
<p>config/cells/cell_name/applications/ear_name/deployements/app_name/war_name/WEB-INF/web.xml</p>
<p>&nbsp;</p>
<p>先停止应用，然后两个文件都修改掉，再启动应用即可生效</p>
<img src ="http://www.blogjava.net/yoda/aggbug/326214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yoda/" target="_blank">YODA</a> 2010-07-15 18:31 <a href="http://www.blogjava.net/yoda/archive/2010/07/15/326214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>