ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
システム
>
TERASOLUNA Framework
>
フォーラム
>
公開討議
>
Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について
TERASOLUNA Framework
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
Wiki
FrontPageの表示
ページ一覧
最近の更新
文書マネージャ
文書一覧
コミュニケーション
フォーラム
フォーラム一覧
公開討議 (1277)
メーリングリスト
MLの一覧
terasoluna-information
ニュース
フォーラム:
公開討議
(スレッド #44393)
話題(スレッド)一覧に戻る
RSS
Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について (2021-07-19 14:10 by
K.K
#87762)
返信
チケットに引用
TERASOLUNA Batch Framework for Java 2.x系において同期型バッチを実行(JobStarter)する場合、
Bean定義ファイル(FrameworkBean.xmlやDefaultValueBean.xml)を参照しBeanを自動生成すると思います。
その中でDefaultValueBean.xmlに定義されている例外ハンドラMapについて質問なのですが
デフォルトでは以下のように書かれています。
<util:map id="exceptionHandlerMap">
<entry>
<key>
<bean class="jp.terasoluna.fw.batch.core.jobException" />
</key>
・
・
・
</entry>
</util:map>
JDK1.7でアプリケーションを動作させた場合、例外ハンドラMapの型はLinkedHashMapで登録されます。
しかしJDK1.8にした場合、例外ハンドラMapの型はLinkedMapになってしまいバッチ起動時にエラーが発生します。
ハンドラMapの定義に「map-class="java.util.LinkedHashMap"」を追記するとエラーは解消するのですが
Java7からJava8に移行した場合になぜBean定義ファイルのMap定義のmap-class属性が省略されていると
LinkedMap型で登録されるのでしょうか?
ご回答よろしくお願いします。
メッセージ #87762 への返信
×
題名
本文
メッセージ #87762 への返信 > TERASOLUNA Batch Framework for Java 2.x系において同期型バッチを実行(JobStarter)する場合、 > Bean定義ファイル(FrameworkBean.xmlやDefaultValueBean.xml)を参照しBeanを自動生成すると思います。 > > その中でDefaultValueBean.xmlに定義されている例外ハンドラMapについて質問なのですが > デフォルトでは以下のように書かれています。 > > <util:map id="exceptionHandlerMap"> > <entry> > <key> > <bean class="jp.terasoluna.fw.batch.core.jobException" /> > </key> > ・ > ・ > ・ > </entry> > </util:map> > > JDK1.7でアプリケーションを動作させた場合、例外ハンドラMapの型はLinkedHashMapで登録されます。 > しかしJDK1.8にした場合、例外ハンドラMapの型はLinkedMapになってしまいバッチ起動時にエラーが発生します。 > > ハンドラMapの定義に「map-class="java.util.LinkedHashMap"」を追記するとエラーは解消するのですが > Java7からJava8に移行した場合になぜBean定義ファイルのMap定義のmap-class属性が省略されていると > LinkedMap型で登録されるのでしょうか? > > ご回答よろしくお願いします。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について (2021-07-20 14:56 by
terasoluna
#87763)
返信
チケットに引用
メッセージ #87762 への返信
> TERASOLUNA Batch Framework for Java 2.x系において同期型バッチを実行(JobStarter)する場合、
> Bean定義ファイル(FrameworkBean.xmlやDefaultValueBean.xml)を参照しBeanを自動生成すると思います。
>
> その中でDefaultValueBean.xmlに定義されている例外ハンドラMapについて質問なのですが
> デフォルトでは以下のように書かれています。
>
> <util:map id="exceptionHandlerMap">
> <entry>
> <key>
> <bean class="jp.terasoluna.fw.batch.core.jobException" />
> </key>
> ・
> ・
> ・
> </entry>
> </util:map>
>
> JDK1.7でアプリケーションを動作させた場合、例外ハンドラMapの型はLinkedHashMapで登録されます。
> しかしJDK1.8にした場合、例外ハンドラMapの型はLinkedMapになってしまいバッチ起動時にエラーが発生します。
>
> ハンドラMapの定義に「map-class="java.util.LinkedHashMap"」を追記するとエラーは解消するのですが
> Java7からJava8に移行した場合になぜBean定義ファイルのMap定義のmap-class属性が省略されていると
> LinkedMap型で登録されるのでしょうか?
>
> ご回答よろしくお願いします。
まず、TERASOLUNA Batch Framework for Java 2.x系に同梱しているSpring
# Batch FW 2.0.2.0までに同梱しているSpring 2.0.6
# Batch FW 2.0.3.0以降に同梱しているSpring 2.5.6.SEC01
は、JDK1.8には対応しておらず、
また、TERASOLUNA Batch Framework for Java 2.xでも動作検証は行っていないことをご承知おきください。
上記の事象は、SpringがJavaのバージョンを正しく認識できず、
LinkedHashMap(Java1.4以降であることが必須条件)が自動選択されない状況に陥ったことにより発生しております。
以下、詳細となります。
TERASOLUNA Batch Framework for Java 2.x系において、
Springが正しくJavaのバージョンを認識できるのが、1.7(Java7)までであり、
それ以降のJavaバージョンになりますと、正しく認識できず、
Springのバージョンによって、
Java1.3扱いもしくはJava1.4扱いとなります。
# Batch FW 2.0.2.0までに同梱しているSpring 2.0.6であれば、Java1.3扱い、
# Batch FW 2.0.3.0以降に同梱しているSpring 2.5.6.SEC01であれば、Java1.4扱いとなります。
# 詳しくは、ご利用のバージョンのSpringの、
# org.springframework.core.JdkVersionのソースでご確認いただけます。
<util:map id="exceptionHandlerMap">
<entry>
<key>
<bean class="jp.terasoluna.fw.batch.core.jobException" />
</key>
・
・
・
</entry>
</util:map>
によって生成されるMapは、
本来、ランタイムがJava1.4以降であれば、
java.util.LinkedHashMap(JDK1.4で追加されたクラス)が自動選択されますが、
判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱いとなり、
java.util.LinkedHashMapが自動選択できず、
次の自動選択候補となるorg.apache.commons.collections.map.LinkedMapがクラスパス上に存在したため、
LinkedMapが自動選択される結果となっています。
#87762
への返信
メッセージ #87763 への返信
×
題名
本文
メッセージ #87763 への返信 > メッセージ #87762 への返信 > > TERASOLUNA Batch Framework for Java 2.x系において同期型バッチを実行(JobStarter)する場合、 > > Bean定義ファイル(FrameworkBean.xmlやDefaultValueBean.xml)を参照しBeanを自動生成すると思います。 > > > > その中でDefaultValueBean.xmlに定義されている例外ハンドラMapについて質問なのですが > > デフォルトでは以下のように書かれています。 > > > > <util:map id="exceptionHandlerMap"> > > <entry> > > <key> > > <bean class="jp.terasoluna.fw.batch.core.jobException" /> > > </key> > > ・ > > ・ > > ・ > > </entry> > > </util:map> > > > > JDK1.7でアプリケーションを動作させた場合、例外ハンドラMapの型はLinkedHashMapで登録されます。 > > しかしJDK1.8にした場合、例外ハンドラMapの型はLinkedMapになってしまいバッチ起動時にエラーが発生します。 > > > > ハンドラMapの定義に「map-class="java.util.LinkedHashMap"」を追記するとエラーは解消するのですが > > Java7からJava8に移行した場合になぜBean定義ファイルのMap定義のmap-class属性が省略されていると > > LinkedMap型で登録されるのでしょうか? > > > > ご回答よろしくお願いします。 > > まず、TERASOLUNA Batch Framework for Java 2.x系に同梱しているSpring > # Batch FW 2.0.2.0までに同梱しているSpring 2.0.6 > # Batch FW 2.0.3.0以降に同梱しているSpring 2.5.6.SEC01 > は、JDK1.8には対応しておらず、 > また、TERASOLUNA Batch Framework for Java 2.xでも動作検証は行っていないことをご承知おきください。 > > 上記の事象は、SpringがJavaのバージョンを正しく認識できず、 > LinkedHashMap(Java1.4以降であることが必須条件)が自動選択されない状況に陥ったことにより発生しております。 > > 以下、詳細となります。 > > TERASOLUNA Batch Framework for Java 2.x系において、 > Springが正しくJavaのバージョンを認識できるのが、1.7(Java7)までであり、 > それ以降のJavaバージョンになりますと、正しく認識できず、 > Springのバージョンによって、 > Java1.3扱いもしくはJava1.4扱いとなります。 > # Batch FW 2.0.2.0までに同梱しているSpring 2.0.6であれば、Java1.3扱い、 > # Batch FW 2.0.3.0以降に同梱しているSpring 2.5.6.SEC01であれば、Java1.4扱いとなります。 > # 詳しくは、ご利用のバージョンのSpringの、 > # org.springframework.core.JdkVersionのソースでご確認いただけます。 > > <util:map id="exceptionHandlerMap"> > <entry> > <key> > <bean class="jp.terasoluna.fw.batch.core.jobException" /> > </key> > ・ > ・ > ・ > </entry> > </util:map> > によって生成されるMapは、 > 本来、ランタイムがJava1.4以降であれば、 > java.util.LinkedHashMap(JDK1.4で追加されたクラス)が自動選択されますが、 > 判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱いとなり、 > java.util.LinkedHashMapが自動選択できず、 > 次の自動選択候補となるorg.apache.commons.collections.map.LinkedMapがクラスパス上に存在したため、 > LinkedMapが自動選択される結果となっています。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について (2021-09-21 11:10 by
terasoluna
#88058)
返信
チケットに引用
メッセージ #87763 への返信
前回の回答について、2点訂正させて下さい。
> 上記の事象は、SpringがJavaのバージョンを正しく認識できず、
> LinkedHashMap(Java1.4以降であることが必須条件)が自動選択されない状況に陥ったことにより発生しております。
誤)
LinkedHashMap(Java1.4以降であることが必須条件)
正)
LinkedHashMap(Java1.5以降であることが必須条件)
> によって生成されるMapは、
> 本来、ランタイムがJava1.4以降であれば、
> java.util.LinkedHashMap(JDK1.4で追加されたクラス)が自動選択されますが、
> 判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱いとなり、
> java.util.LinkedHashMapが自動選択できず、
> 次の自動選択候補となるorg.apache.commons.collections.map.LinkedMapがクラスパス上に存在したため、
> LinkedMapが自動選択される結果となっています。
誤)
本来、ランタイムがJava1.4以降であれば、
java.util.LinkedHashMap(JDK1.4で追加されたクラス)が自動選択されますが、
判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱いとなり、
正)
本来、ランタイムがJava1.5以降であれば、
java.util.LinkedHashMap(JDK1.5で追加されたクラス)が自動選択されますが、
判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱い、Spring 2.5.6.SEC01ではJava1.4扱いとなり、
#87763
への返信
メッセージ #88058 への返信
×
題名
本文
メッセージ #88058 への返信 > メッセージ #87763 への返信 > > 前回の回答について、2点訂正させて下さい。 > > > 上記の事象は、SpringがJavaのバージョンを正しく認識できず、 > > LinkedHashMap(Java1.4以降であることが必須条件)が自動選択されない状況に陥ったことにより発生しております。 > > 誤) > LinkedHashMap(Java1.4以降であることが必須条件) > 正) > LinkedHashMap(Java1.5以降であることが必須条件) > > > > > によって生成されるMapは、 > > 本来、ランタイムがJava1.4以降であれば、 > > java.util.LinkedHashMap(JDK1.4で追加されたクラス)が自動選択されますが、 > > 判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱いとなり、 > > java.util.LinkedHashMapが自動選択できず、 > > 次の自動選択候補となるorg.apache.commons.collections.map.LinkedMapがクラスパス上に存在したため、 > > LinkedMapが自動選択される結果となっています。 > > 誤) > 本来、ランタイムがJava1.4以降であれば、 > java.util.LinkedHashMap(JDK1.4で追加されたクラス)が自動選択されますが、 > 判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱いとなり、 > > 正) > 本来、ランタイムがJava1.5以降であれば、 > java.util.LinkedHashMap(JDK1.5で追加されたクラス)が自動選択されますが、 > 判定不能バージョンのJava(1.8)が、Spring 2.0.6ではJava1.3扱い、Spring 2.5.6.SEC01ではJava1.4扱いとなり、
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル