top / index / prev / next / target / source

2006-07-11 diary: JExcelApi 2.5.8 が Sun JDK 1.4.2_12 上で動作が異常の場合がある

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

JExcelApi 2.5.8 が Sun JDK 1.4.2_12 上で動作が異常の場合がある

原因を調査中です。Sun JDK 1.4.2_12より以前のJDKでは この現象は発生しない模様です。

JExcelApi 2.5.8 が Sun JDK 1.4.2_12 上で動作が異常の場合がある

JExcelApi 2.5.8 は Sun JDK 1.4.2_12 上で動作が異常である場合があるようです。

原因を調査中です。Sun JDK 1.4.2_12より以前のJDKで この現象は発生しない場面を確認しています。どのリビジョンから この問題が顕在化しているのかは明確ではありません。一方で 現時点の最新版である JExcelApi 2.6 において、同様の現象が発生するかどうかについても調査はできていません。

blanco Frameworkの構成要素である多くのプロダクトは Excelからの読み込み処理のほとんどを JExcelApiに依存しています。このため、blanco Frameworkプロダクトの多くが Sun JDK 1.4.2_12 において動作が不調という現象が発生する可能性があります。(ExcelからXMLファイルへの変換の過程で、内容が全く読み取られないという現象として現れています。)

2007.04.14追記 blanco Frameworkでは、この問題に対処するためのパッチ付 JExcelApiを配布しています。

明日から大阪出張

明日から大阪出張です。1泊2日の予定になる見込みです。

Microsoft .NET Framework SDK 2.0の Webサービスにおけるバイナリ転送

blancoSOAP の .NET Framework SDK 2.0対応の過程で、Microsoft .NET Framework SDK 2.0の Webサービスにおけるバイナリ転送 (xsd:binary) を簡単に調べてもらいました。

1 MBのバイナリデータ転送

正常に転送することができました。

10 MBのバイナリデータ転送

以下の例外が発生しました。 ハンドルされていない例外: System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: 構成ファイルで指定された拡張機能を実行中に例外が発生しました。 ---> System.Web.HttpException: 要求の長さの最大値を超えました。 場所 System.Web.HttpRequest.GetEntireRawContent()

一方で、設定値を変更することにより、正常に動作させることが出来ます。 Web.configファイルの、configuration/system.web/httpRuntimeのmaxRequestLengt属性を2097151に変更すると、こんどは正常にバイナリ転送することができました。 maxRequestLengt属性はKB単位で指定するようです。

100 MBのバイナリデータ転送

100 MBのバイナリデータ転送では、10 MBの転送時とは別の例外が発生しました。 ハンドルされていない例外: System.Web.Services.Protocols.SoapException: WebExceptionが発生したため、WebExceptionをSoapExceptionに変更しました。(注釈:これは blancoSOAPのメッセージ)

詳細情報などは追えていません。少なくとも SoapException以外の例外が発生している模様です。

全体的に

XSDの binaryを用いることにより、.NET Framework 2.0の Webサービス実装においても、ある程度のサイズまでのバイナリ転送は容易に実現可能であることがわかりました。blancoSOAPが特に対応することなく .NET Framework 2.0上で Webサービスを駆動させることができるソースコードを生成できていたのは嬉しかったです。


この日記について