今まで「大なり小なり」システムを構築し、稼働させて頂きましたが、それらは個別に設計・実装されたモノでした。
以前から構想していたシステムのCoreな部分である要素(組織・人物・住所・製品)の土台部分を理想的に充実させ、その上に各個別のカラクリを載せる・・・といった考えを進めるべく、ライフワークとして取り組んでいた「Mighty構想」が、ついに今回リリースした実稼働システムに採用されています。
で、個別部分の初回の機能の動作確認が終わり、ちょこっとした要望もシステムに反映し、では次の機能拡張を・・・と。
・・・・待てよ。次の機能も初回と同様にcsvファイルのアップロード処理が入るなぁ・・・・。初回ではブラウザ外からのドラッグ&ドロップと、複数ファイルの同時処理を入れなかったケド、テスト時の動作確認では結構面倒だったなぁ。
よし、古いIEでは出来ないが、それは救済機能を入れてコイツらを実装しようじゃないか・・・・と。
クライアントのブラウザ側はjQueryをprototypeと住み分けながらAjaxとして実装。ところがサーバー側のspring君が、ファイル1つでは動作するが複数を放り込むとエラーで動作しない!!!
1日中調査をしたら英語のサイトで、同様のトラブル対処の仕方を解説してくれているっぽい感じである。つたない英語力でヒィーヒィー解読しながらも、昨日はタイムアップ。
で、家で一杯やったり、事務所への自転車往復などで頭を冷やして、本日・冷静に考えて、「これって最近のspringならOKじゃないの?」と、面倒なモノだからあえて目線を変えて、昨日も特に参考にしたサイト(日本語)を、飛ばさないでゆっくりジックリ読んだ。
エラーからもリゾルバが処理できていない感であったのだが、このサイトの説明では、今まで使っていた「org.springframework.web.multipart.commons.CommonsMultipartResolver」ではなく、「org.springframework.web.multipart.support.StandardServletMultipartResolver」ってのを使っていて、コイツで上手く動作するらしい。
で、springを2.5.6から3.2.9に上げて、上記のサイトの丁寧な説明に沿って設定を書き換えたら・・・・「あっさり動作した」。
心にトメよ
使い慣れた環境に甘んじずに、新しいバージョンを積極的に採用しよう!
(ではなぜ最新の4にしないのか?)・・なにやら大幅に変更があったらしく、色々と調整に手間がかかりそうである。ので、そこまでハマリたくない。ヨウは、「このようにシタイ」ことが「技術的にデキレば良いのである」。
とにかく、アキラメなくて良かった。・・・(← 最近のアキラメは方向キーで選択できるサジェスト機能であった。マウス選択での実装で妥協)とほほ。