[mayaa-user:705] Re: WebSphere6.1でsun.io.MalformedInputException

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 11月 18日 (火) 10:13:12 JST


いつもお世話になっております。
小林(質問者)です。

> > WebSphere6.1 の方の設定を変えようかとも思ったのですが、
> > 変えた部分がどこに影響してくるのか特定できなかったので
> > そちらの方はあきらめました。
> 
> 影響の確認は時間がかかるかもしれませんが、もし HTML の更新が
> 頻繁にあるようなシステムであれば、Locale 変更の対策をする方が
> トータルコストは低いこともあるでしょう。

実は、昨日の午前中くらいローカルの変更をしようと
調査していたのですが、正直ちょっと分からなかったのです。

調査したマシンは、Windows2000です。

マシンの環境変数は、
LANG → 無かった
LC_ALL=JA_JP
となっていました。
LC_ALL=en_US にしても同じエラーになりました。

参考にしたページには書いてあったのですが、
マシンの環境変数は、.utf8 で終わっているものはなく、
多分、同じマシンにJDKを入れてTomcatを動かせば
エスケープ無しで動作するだろうし、
そうするとWebSphere6.1内での設定の話なのだろうな...と。

mayaa を使わないで、WAS上で jsp で試してみると、
Shift-JISで保存したjspがすんなり動くし、そうすると
NekoHTML か IBM JDK の設定かなとも思えるし...。

ちなみにエラー時のスタックトレースは、以下の通りです。(遅ればせながら)
stackTrace: sun.io.MalformedInputException
sun.io.ByteToCharUTF8.convert(262)
sun.nio.cs.StreamDecoder$ConverterSD.convertInto(314)
sun.nio.cs.StreamDecoder$ConverterSD.implRead(364)
sun.nio.cs.StreamDecoder.read(250)
java.io.InputStreamReader.read(212)
org.cyberneko.html.HTMLScanner.load(1082)
org.cyberneko.html.HTMLScanner.read(1043)
org.cyberneko.html.HTMLScanner$ContentScanner.scan(1822)
org.cyberneko.html.HTMLScanner.scanDocument(809)
org.cyberneko.html.HTMLConfiguration.parse(478)
org.cyberneko.html.HTMLConfiguration.parse(431)
org.apache.xerces.parsers.XMLParser.parse(unknown)
org.apache.xerces.parsers.AbstractSAXParser.parse(unknown)
org.seasar.mayaa.impl.builder.SpecificationBuilderImpl.build(78)
org.seasar.mayaa.impl.engine.specification.SpecificationImpl.build(149)
org.seasar.mayaa.impl.engine.TemplateImpl.build(223)
org.seasar.mayaa.impl.engine.EngineImpl.createSpecificationInstance(553)
org.seasar.mayaa.impl.engine.EngineImpl.createTemplateInstance(593)
org.seasar.mayaa.impl.engine.PageImpl.getTemplateFromFixedSuffix(149)
org.seasar.mayaa.impl.engine.PageImpl.getTemplate(163)
org.seasar.mayaa.impl.engine.RenderUtil.getTemplate(267)
org.seasar.mayaa.impl.engine.RenderUtil.renderPage(302)
org.seasar.mayaa.impl.engine.PageImpl.doPageRender(190)
org.seasar.mayaa.impl.engine.EngineImpl.doPageService(368)
org.seasar.mayaa.impl.engine.EngineImpl.doService(490)
org.seasar.mayaa.impl.MayaaServlet.doService(97)
org.seasar.mayaa.impl.MayaaServlet.doGet(80)

これを見ると、やはり読込時に Shift-JISのファイルを utf8 として
読み込んでいるのでエラーになっているように見えます。

NekoHTML か IBM JDK の設定かなと思えたのですが、
調査の時間もなかったので、エスケープに逃げてしまいました。
質問提起者としてはダメかも知れません、すいませんでした。


> HTML を配置するときの作業に自動化して含めてしまえば関係ない
> かもしれませんけど。

変換のスクリプトを作成して、配置作業に加えることにしました。
確かに、根本的な解決ではないかも知れませんが...。



以上、よろしくお願いいたします。

小林貴生



mayaa-user メーリングリストの案内