<?xml version="1.0"?>
<!-- name="generator" content="blojsom v2.14" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <channel>
        <title>Miles' Blog</title>
        <link>http://2yup.com/blojsom/blog/miles/</link>
        <description>Welcome 2 My Planet</description>
        <language>en</language>
        <image>
            <url>http://2yup.com/blojsom/favicon.ico</url>
            <title>Miles' Blog</title>
            <link>http://2yup.com/blojsom/blog/miles/</link>
        </image>
        <docs>http://backend.userland.com/rss</docs>
		<generator>blojsom v2.14</generator>
		<dc:publisher>MILES</dc:publisher>
		<dc:creator>miles@2yup.com</dc:creator>
		<dc:date>2007-03-05T14:10:13+08:00</dc:date>

                <item>
            <title>A permission problem during MRTG intallation|MRTG安装中的权限问题</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=76B0B3CB1EC7DB77A68EA1E636BABECD.txt</link>
            <description>今天给136配置了MRTG服务，用来监控流量。由于安装过太多次，所以整个过程都很顺利。安装到位后启动时出现如下错误：&lt;br/&gt;
&lt;pre style=&quot;width: 600px; overflow: scroll;&quot;&gt;
2007-03-05 13:39:49 -- ERROR: Skipping webupdates because rateup did not return anything sensible
2007-03-05 13:39:49 -- WARNING: rateup died from Signal 0
 with Exit Value 1 when doing router &apos;127.0.0.1_16777219&apos;
 Signal was 0, Returncode was 1
2007-03-05 13:39:49 -- ERROR: Skipping webupdates because rateup did not return anything sensible
2007-03-05 13:39:49 -- WARNING: rateup died from Signal 0
 with Exit Value 1 when doing router &apos;127.0.0.1_16777220&apos;
 Signal was 0, Returncode was 1
&lt;/pre&gt;
上网搜了一下，没有找到贴题的文章，但是看到好几个由于权限问题导致的MRTG错误。所以检查了一下MRTG的output dir，把这个目录的权限设置为Everyone可写，问题解决。看来应该是启动MRTG的帐户对这个目录权限不足造成了写入文件失败。特此记录，一面日后重蹈覆辙。
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=76B0B3CB1EC7DB77A68EA1E636BABECD.txt</guid>
			<pubDate>星期一, 5 三月 2007 14:10:13 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=76B0B3CB1EC7DB77A68EA1E636BABECD.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=76B0B3CB1EC7DB77A68EA1E636BABECD.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
                <item>
            <title>firefox wmlbrowser extension的select bug终于解决了</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=8C258734D5119E7E5F91993B53F33A4C.txt</link>
            <description>bug#9321, &lt;code&gt;&quot;Data from select/option fields are not sent&quot;&lt;/code&gt;终于在0.6.9版被shoot down了，大快人心啊！！&lt;br&gt;&lt;br&gt;

这个extension许久都没有动作了，0.6.8还是年初的版本。hoho~~ 难道和我不懈的骚扰有关系？前段时间和Project Owner[Matthew Wilson]通过信催这个问题，他当时的回答居然是：
&lt;pre&gt;
Sorry about that, I&apos;d forgotten about it to be honest. I&apos;ll try and sort
something out soon.

Matthew
&lt;/pre&gt;

当时真是晕啊～～这么好的DD难道只有我一个人用么？？？？ :|
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=8C258734D5119E7E5F91993B53F33A4C.txt</guid>
			<pubDate>星期四, 26 五月 2005 16:20:49 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=8C258734D5119E7E5F91993B53F33A4C.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=8C258734D5119E7E5F91993B53F33A4C.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
                <item>
            <title>cvs错误：cannot find .: No such file or directory</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=8713647BF0843D1DFD0EE7BC5E1BADB1.txt</link>
            <description>服务器重整以后，cvs update/commit时候会出现如下错误提示：&lt;br&gt;
&lt;code&gt;cvs server: cannot open directory . for empty check: Invalid argument&lt;/code&gt;&lt;br&gt;
虽然不影响使用，但是却很让人不爽。&lt;br&gt;&lt;br&gt;

而chacl时候，则是：&lt;br&gt;
&lt;code&gt;cvs [server aborted]: cannot find .: No such file or directory&lt;/code&gt;&lt;br&gt;
干脆就直接出错。研究了一下cvsnt里面的设置，感觉应该只和cvsroot及temp目录有关——毕竟只用到这两个目录而已。检查之后发现winnt/temp没有对cvsuser这个系统帐号的权限。设置之后问题解决。&lt;br&gt;&lt;br&gt;

虽然cvsuser只是一个停用了的cvs用户绑定帐号，但是权限管理方面仍然遵循着ntfs的规则。这么说来停用的意义应该仅仅是限制登录。
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=8713647BF0843D1DFD0EE7BC5E1BADB1.txt</guid>
			<pubDate>星期二, 10 五月 2005 09:47:22 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=8713647BF0843D1DFD0EE7BC5E1BADB1.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=8713647BF0843D1DFD0EE7BC5E1BADB1.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
                <item>
            <title>JTDS: A bug while preforming full-text search</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=1B68003ED298F4025346C8BE94202A48.txt</link>
            <description>When took JTDS as MSSQL jdbc driver and did a pre-query like this:&lt;br&gt;
&lt;code&gt;select * from tbltopic where contains(topic, ?)&lt;/code&gt;&lt;br&gt;
we got a SQLException saying:&lt;br&gt;
&lt;code&gt;...ResultSet is TYPE_FORWARD_ONLY...&lt;/code&gt;&lt;br&gt;
And this exception did not come up while using a regular sql statement:&lt;br&gt;
&lt;code&gt;select * from tbltopic where contains(topic, &apos;+keyword+&apos;)&lt;/code&gt;&lt;br&gt;&lt;br&gt;

Is this a bug or something of JTDS? :(
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=1B68003ED298F4025346C8BE94202A48.txt</guid>
			<pubDate>星期二, 19 四月 2005 15:29:59 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=1B68003ED298F4025346C8BE94202A48.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=1B68003ED298F4025346C8BE94202A48.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
                <item>
            <title>d-o-e PI以及奇怪的namespace问题</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=D3AA3336B811161854CAD604A10CAE0C.txt</link>
            <description>在xslt中，经常有需要保留&amp;lt;&gt;，不把它替换成&amp;amp;lt;&amp;amp;gt;的需求。比如今天就遇到了需要在xslt中利用xalan调用java static method，生成部分wml代码的情况。按规范上说，只需要用
&lt;pre&gt;
&amp;lt;xsl:value-of disable-output-escaping=&quot;yes&quot; select=&quot;string(&apos;&amp;lt;&apos;)&quot;/&gt;
&lt;/pre&gt;
这样的方式，就可以达到目的。这种方法在MSXML中完全没有问题。可是，到了java中情况就完全不同了。上述代码得到的是这样的一个半成品：
&lt;pre&gt;
&amp;lt;?javax.xml.transform.disable-output-escaping?&gt;
&lt;/pre&gt;
意思似乎是让你再找个什么玩意作二次转换。可是找了一圈也没有找到处理这个d-o-e PI的办法。鉴于时间有限，只能用笨办法了：就是字符串分析替换。邮件列表里面很多人都遇到了这个问题而且一筹莫展，真搞不懂这个设计是什么意思 :|&lt;br&gt;&lt;br&gt;

做了半天苦力搞好了这个问题，新的，更BT的问题又来了。这样的一个xsl文件：
&lt;pre&gt;
&amp;lt;xsl:stylesheet 
  version=&quot;1.0&quot; 
  xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
  xmlns:funcs=&quot;xalan://com.yupstudio.app.downwap.common.util.XSLTFuncs&quot;&gt;

  &amp;lt;xsl:output 
    method=&quot;wml&quot; 
    omit-xml-declaration=&quot;no&quot; 
    indent=&quot;no&quot; 
    doctype-public=&quot;-//WAPFORUM//DTD WML 1.3//EN&quot;
    doctype-system=&quot;http://www.wapforum.org/DTD/wml13.dtd&quot; /&gt;
......
&lt;/pre&gt;
实在搞不清楚为什么会有这样的输出：
&lt;pre&gt;
&amp;lt;wml 
  xmlns:funcs=&quot;xalan://com.yupstudio.app.downwap.common.util.XSLTFuncs&quot;&gt;
&lt;/pre&gt;
这个namespace说明的attr为什么会加入这里？要知道到生成这个结果的时候，xalan已经发挥完作用了啊！解决方式仍然是简单粗暴：用regexp直接搞掉&lt;wml&gt;tag的所有attr。&lt;br&gt;&lt;br&gt;

最后，一个字总结今天的心得——郁闷成P了！&lt;br&gt;&lt;br&gt;

&lt;hr size=1&gt;
补充一下，前两天这个namespace错误又有出现。观察现象发现当主xsl和include进来的xsl的&lt;code&gt;xsl:stylesheet&lt;/code&gt;标签中的xmlns声明部分有不同时就会使得included xsl的顶级标记中出现xmlns的声明。&lt;br&gt;&lt;br&gt;

例如主xsl（main.xsl）:

&lt;pre&gt;
&amp;lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
xmlns:funcs=&quot;xalan://com.yupstudio.app.downwap.common.util.XSLTFuncs&quot;&amp;gt;
&lt;/pre&gt;

从xsl（footer.xsl）：
&lt;pre&gt;
&amp;lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
xmlns:funcs=&quot;xalan://com.yupstudio.app.downwap.common.util.XSLTFuncs&quot;
xmlns:digest=&quot;xalan://com.yupstudio.app.downwap.common.util.DigestUtil&quot;&amp;gt;
&lt;/pre&gt;

那么在footer xsl负责解析的wml底部的那个&lt;code&gt;P&lt;/code&gt;标记就会成为：
&lt;pre&gt;
&amp;lt;xmlns:digest=&quot;xalan://com.yupstudio.app.downwap.common.util.DigestUtil&quot;&amp;gt;
&lt;/pre&gt;

修改主从的xmlns定义一致即可解决问题。
--08-01-18
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=D3AA3336B811161854CAD604A10CAE0C.txt</guid>
			<pubDate>星期五, 25 三月 2005 19:16:40 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=D3AA3336B811161854CAD604A10CAE0C.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=D3AA3336B811161854CAD604A10CAE0C.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
                <item>
            <title>一个奇怪的中文编码问题的粗暴解决办法</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=7DB5202DA15F7811F7956DE0C0B5A9ED.txt</link>
            <description>老系统中文编码有问题。如果不设置contentType为&lt;code&gt;text/html; charset=gb2312&lt;/code&gt;，则虽然是html源文件是中文，但是需要更改IE的charset设置（这时候实际上察看http header看到的contentType是&lt;code&gt;text/html; charset=iso8859-1&lt;/code&gt;）；如果设置了contentType为gb2312，则html源里面的中文直接成了???。&lt;br&gt;&lt;br&gt;

这个老系统当时运行于jdk1.3+tomcat3下，当时就不知道是那根筋不对，怎么都搞不定，最后套了一个客户端包IE，强制了编码才掩盖了问题。现在3年多过去了，怎么也得长点本事吧？于是就开始想尽办法折腾。试过了所有的方法，包括设置filter，给html加所有相关的&lt;meta&gt;，甚至包括设置jb的默认字符集，都完全无效。实在气不过，甚至反编译了tomcat的HttpServletResponse、JspWriter等的实现代码，一时也没看出门道。。&lt;br&gt;&lt;br&gt;

最后，心一横，给问题定了性：不就是一个老系统么？咱不浪费那个时间，简单粗暴地解决问题就算搞完！下面就是暴力解决法：
&lt;pre&gt;
public class HtmlMimeResponseWrapper extends HttpServletResponseWrapper {
  
  //....

  public PrintWriter getWriter() throws IOException {
    PrintWriter writer = super.getWriter();
    MyWriter myWriter = new MyWriter(writer);
    return myWriter;
  }

  //...
}
&lt;/pre&gt;
没错！就是用一个filter，把他的PrintWriter包裹起来。decorator里面decorate，哈哈。。PrintWriter是一个内部类，细节如下：
&lt;pre&gt;
  class MyWriter extends PrintWriter {
    PrintWriter writer;

    public MyWriter(PrintWriter writer) {
      super(writer);
      this.writer = writer;
    }

    // 关键在这里！
    public void write(String buf) {
      String newbuf = null;
      try {
        newbuf = new String(buf.getBytes(&quot;iso-8859-1&quot;));
      }
      catch (UnsupportedEncodingException ex) {
      }
      writer.write(newbuf);
    }

    public boolean checkError() {
      return writer.checkError();
    }

    public void print(Object obj) {
      writer.print(obj);
    }

    public void print(String s) {
      writer.print(s);
    }

    public void print(boolean b) {
      writer.print(b);
    }

    public void print(char c) {
      writer.print(c);
    }

    public void print(char[] s) {
      writer.print(s);
    }

    public void print(double d) {
      writer.print(d);
    }

    public void print(float f) {
      writer.print(f);
    }

    public void print(int i) {
      writer.print(i);
    }

    public void print(long l) {
      writer.print(l);
    }

    public void println() {
      writer.println();
    }

    public void println(Object x) {
      writer.println(x);
    }

    public void println(String x) {
      writer.println(x);
    }

    public void println(boolean x) {
      writer.println(x);
    }

    public void println(char x) {
      writer.println(x);
    }

    public void println(char[] x) {
      writer.println(x);
    }

    public void println(double x) {
      writer.println(x);
    }

    public void println(float x) {
      writer.println(x);
    }

    public void println(int x) {
      writer.println(x);
    }

    public void println(long x) {
      writer.println(x);
    }

    public void close() {
      writer.close();
    }

    public void flush() {
      writer.flush();
    }

    public void write(String str, int off, int len) {
      writer.write(str, off, len);
    }

    public void write(char[] cbuf) {
      writer.write(cbuf);
    }

    public void write(char[] cbuf, int off, int len) {
      String s=new String(cbuf, off, len);
      this.write(s);
    }

    public void write(int c) {
      writer.write(c);
    }
  }
&lt;/pre&gt;

现在把问题从头掐了。虽然粗暴了一点，不过效果达到了。对于那些没有时间深究，或者懒得深究的问题，用这样的方法还是不错的。&lt;br&gt;&lt;br&gt;

另外值得一提的是jb的Delegate member wizard功能。通过他可以快速的作出一个Wrapper类，不用把super class的方法都一个一个去机械的实现，很是省力。只不过以前的jb里，这个功能处于Wizard主菜单，而现在则藏到了Edit下。。害我一顿好找 :(
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=7DB5202DA15F7811F7956DE0C0B5A9ED.txt</guid>
			<pubDate>星期五, 21 一月 2005 08:14:45 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=7DB5202DA15F7811F7956DE0C0B5A9ED.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=7DB5202DA15F7811F7956DE0C0B5A9ED.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
                <item>
            <title>mail.jar无法释放</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=410B0EE02ED089BE4324C5CABBC86203.txt</link>
            <description>环境：win2k+tomcat5.0.24

我的webapp用到了java mail api。按理说每次上传新的xxx.war以后，tomcat会先清除现有的xxx目录，然后展开新war。可是我这个应用却出了问题：web-inf/lib/mail.jar无法删除，提示占用（其他的jar、jsp已经全部删掉了）！只有shutdown tomcat才可以删除并重新deploy。。&lt;br&gt;&lt;br&gt;

释放java mail资源的地方只有&lt;br&gt;
&lt;code&gt;transport.close();&lt;/code&gt;&lt;br&gt;
不过以前也是这样的，似乎并没有问题。&lt;br&gt;&lt;br&gt;

究竟怎么回事儿啊？？去sun和google转了好大一圈，还是无解。。。
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=410B0EE02ED089BE4324C5CABBC86203.txt</guid>
			<pubDate>星期四, 9 十二月 2004 10:04:51 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=410B0EE02ED089BE4324C5CABBC86203.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=410B0EE02ED089BE4324C5CABBC86203.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
                <item>
            <title>firefox和ie对于&amp;lt;input type=file&amp;gt;的不同处理</title>
            <link>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=61563D6D78BEE022BD1CA19D08F539B1.txt</link>
            <description>传递过来的filename，IE会是全路径，而firefox则是文件名。因为这个前两天还搞出来一个bug。

其实按理说，后者更合理。因为对于server端，没有必要也没有权利得到客户端的文件完整路径信息。
</description>
            <guid isPermaLink="true">http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=61563D6D78BEE022BD1CA19D08F539B1.txt</guid>
			<pubDate>星期二, 7 十二月 2004 14:27:08 +0800</pubDate>
              	          <wfw:comment>http://2yup.com/blojsom/commentapi/develop/trouble-shooting/?permalink=61563D6D78BEE022BD1CA19D08F539B1.txt</wfw:comment>
              <wfw:commentRss>http://2yup.com/blojsom/blog/miles/develop/trouble-shooting/?permalink=61563D6D78BEE022BD1CA19D08F539B1.txt&amp;page=comments&amp;flavor=rss2</wfw:commentRss>
                    </item>
            </channel>
</rss>
