どうも、ポートレット上で 、これが動かないように見えるのだが。もしかして、ServletResponseのencodeURLはmailto:… というのを与えたら、普通にExceptionをはかずに、値を返すということだろうか??がしかし、PlutoのPortletResponseは、IllegalArgumentExceptionをはいて、終了・・・。なんじゃ、こりゃ~。この現象を見ていると、Plutoが悪いような気もする。というわけで、サーブレットとポートレットの仕様を確認。うーん、Plutoだ・・・。で、さらに、TomcatとPlutoのソースコードを見てみる・・・。Plutoよ、それではだめだ。なぜ、encodeURLで
if (path.indexOf("://") == -1 && !path.startsWith("/")) { throw new IllegalArgumentException( "only absolute URLs or full path URIs are allowed"); }
ということをするのかな・・・。手っ取り早く修正するには、throwせずに、returnでそのままかえすべきだろう。バグあげておこう・・・。そんで、パッチを当てたPlutoを使わんといかんな。そうしないとアドレス帳ポートレットが動かん。