Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
System
>
TERASOLUNA Framework
>
Forums
>
Open Discussion
>
Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について
TERASOLUNA Framework
Description
Project Summary
Developer Dashboard
Web Page
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
Subversion
View Repository
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Wiki
FrontPage
Title index
Recent changes
Doc Mgr
List Docs
Communication
Forums
List of Forums
Open Discussion (1277)
Mailing Lists
list of ML
terasoluna-information
News
Forums:
Open Discussion
(Thread #44393)
Return to Thread list
RSS
Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について (2021-07-19 14:10 by
K.K
#87762)
Reply
Create ticket
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型で登録されるのでしょうか?
ご回答よろしくお願いします。
Reply to #87762
×
Subject
Body
Reply To Message #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型で登録されるのでしょうか? > > ご回答よろしくお願いします。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
Re: Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について (2021-07-20 14:56 by
terasoluna
#87763)
Reply
Create ticket
メッセージ #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が自動選択される結果となっています。
Reply to
#87762
Reply to #87763
×
Subject
Body
Reply To Message #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が自動選択される結果となっています。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
Re: Bean定義ファイル(xml)を用いてBeanを生成する際のMapの型について (2021-09-21 11:10 by
terasoluna
#88058)
Reply
Create ticket
メッセージ #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扱いとなり、
Reply to
#87763
Reply to #88058
×
Subject
Body
Reply To Message #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扱いとなり、
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel