FAQ/S2Container
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[FAQ]]
*S2Container [#q34208f8]
#contents
**diconファイルのタグ一覧ドキュメントはありますか [#r1f58...
>[[S2サポーター]] (2006-04-29 (土) 19:48:21)~
~
''Question''~
~
diconファイルに書くタグ一覧のようなドキュメントはあるので...
~
~
''Answer''~
~
diconファイルのタグは、サブプロダクトによって違わないので...
http://s2container.seasar.org/ja/DIContainer.html~
~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2005-November/0...
http://ml.seasar.org/archives/seasar-user/2005-November/0...
//
**バッチ更新処理に失敗したレコードを挿入することはできる...
>[[S2サポーター]] (2006-04-29 (土) 19:48:21)~
~
''Question''~
~バッチ更新処理に失敗したレコードを挿入することはできるか?
~
~
''Answer''~
~
~
~
~
//
**アノテーションをまとめて書いたドキュメントはありますか ...
>[[S2サポーター]] (2006-04-29 (土) 19:47:45)~
~
''Question''~
~
seasarにはいくつものサブプロダクトが有りますが、これらの...
~
~
''Answer''~
~
特にありません。個々のプロダクトのドキュメントを参照して...
S2Containerのアノテーションリファレンスは、下記のページで...
http://s2container.seasar.org/ja/DIContainer.html#Annotat...
S2Dao Tigerのアノテーションリファレンスは、下記のページで...
http://s2dao.seasar.org/ja/tiger-annotation.html~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2005-November/0...
http://ml.seasar.org/archives/seasar-user/2005-November/0...
~
まだ作りかけですが、2ちゃんねるに投稿されていた情報をもと...
//
**コンポーネントの呼び出し元のjavaからコンストラクタに渡...
>[[S2サポーター]] (2006-04-29 (土) 19:27:07)~
~
''Question''~
S2Containerリファレンスを見て、diconファイルに記述したパ...
コンストラクタに設定できるのはわかったのですが、コンポー...
コンストラクタに渡す引数を設定したい場合どのようにすれば...
~
たとえば以下のようなクラスをコンポーネントにしたい場合で...
~
public class StringUtil {
private String str;
public StringUtil(String str){
this.str = str;
}
public String[] split(String c){
return str.split(c);
}
}
~
~
''Answer''~
ひがです。~
今のところ、できません。~
直接newしたオブジェクトでもDIできるようにするという研究は...
まだ実用化するには幾つか越えなければいけないハードルがあ...
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2005-December/0...
http://ml.seasar.org/archives/seasar-user/2005-December/0...
//
**自動登録したクラスに共通の定義を適用する方法 [#o2b4363d]
>[[S2サポーター]] (2006-04-29 (土) 19:19:13)~
~
''Question''~
~
FileSystemComponentAutoRegisterで自動登録したコンポーネン...
共通のproperty、initMethodタグを適用したいのですが、可能...
~
やりたいことは、JFrameを継承したクラスすべてに対しlayout...
自動バインディングの無効化と、初期メソッドの呼び出しを行...
~
<!-- ログイン画面 -->
<component name="loginForm" class="frame.LoginFrame">
<!-- layoutプロパティは自動バインディング対象外 -->
<property name="layout" bindingType="none"/>
<!-- 画面を中央に位置する -->
<initMethod>@util.SwingUtil @ setLocationCenter(#se...
</component>
~
上記のような定義をframe.*Frameクラスに対しすべて適用し...
~
~
''Answer''~
~
JFrameを継承したクラスを作成し、そこで、~
~
@Binding(bindingType=BindingType.None)
public void setLayout(...)
@InitMethod
public void initialize() {
util.SwingUtil.setLocationCenter(this);
}
~
のようにアノテーションを記述します。~
あとは、必要なクラスでこのクラスを継承するようにします。~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-February/0...
http://ml.seasar.org/archives/seasar-user/2006-February/0...
//
**Ver 2.3.4でcomponentにJFrameを指定すると例外が発生する ...
>[[S2サポーター]] (2006-04-29 (土) 19:08:23)~
~
''Question''~
~
Ver 2.3.4 において dicon ファイルに JFrame およびその派生...
記例外が発生します。~
JDK は 1.5 を使用しています。~
~
■dicon ファイル~
<components>
<component class="javax.swing.JFrame">
</component>
</components>
~
■例外~
Exception occured at /components[1]/component[1]
org.seasar.framework.exception.IllegalAccessRuntimeExcep...
[ESSR0042]java.awt.Containerで不正なアクセスがありまし...
理由はjava.lang.IllegalAccessException:
Class org.seasar.framework.util.FieldUtil can not acces...
member of class java.awt.Container with modifiers ""
at org.seasar.framework.util.FieldUtil.get(FieldUtil...
〜(以下略)〜
~
''Answer''~
~
この問題は、2.3.4以前で発生します。~
2.3.5にて対応されました。~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-February/0...
http://ml.seasar.org/archives/seasar-user/2006-February/0...
//
**S2Tx機能を使用したテーブルの行ロックが、テーブルロック...
>[[S2サポーター]] (2006-04-29 (土) 19:06:33)~
~
''Question''~
~
○環境~
・JDK:1.4.2_03~
・S2Container:2.2.10~
・S2Dao:1.0.27~
・DB:Microsoft SQL Server~
~
~
○現象~
『トランザクション属性にj2ee.requiredTxをAspectしたクラス...
テーブルの行ロックをかけようとしたところ、行ロックではな...
~
テーブルの行ロックをかけるため下記SQLを実行し、~
「SQL Server Enterprise Manager」からロック状況を確認した...
テーブル内の全レコードに対して更新ロックがかかります。~
~
SELECT * FROM テーブル名 with(UPDLOCK,ROWLOCK)~
WHERE aaaa = 'aa';~
※aaaa:プライマリキー~
~
S2Tx機能をはずした状態~
(BEGIN TRANSACTION、COMMIT TRANSACTIONを使用した場合)で...
対象行にのみ更新ロックがかかっていることことから、~
S2Tx機能に原因があるのではと考えています。~
~
~
''Answer''~
~
S2Txは、ロックには関与していないので、~
with(UPDLOCK,ROWLOCK)を使うには、明示的に、~
BEGIN TRANSACTION、COMMIT TRANSACTIONを行う必要がある~
ということだと思います。~
~
XAに対応したJDBC Driverならそっちを使ってみるのも手です。~
j2ee.diconのxaDataSourceの部分をそのXA Driverの物に替えれ...
ただ、まともなXA Driverを見たことが余り無いので、期待でき...
~
S2Txは、JTAの仕様に合わせて、XAResourceのメソッドを呼び出...
dbcp.implのDBXAResourceのdoBegin, doCommitなどを見れば、~
実際に何が行われているのかが分かります。~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-February/0...
http://ml.seasar.org/archives/seasar-user/2006-February/0...
//
**S2.3.4のセットアップに必要なjarは「geronimo-spec-jta-1....
>[[S2サポーター]] (2006-04-29 (土) 18:44:45)~
~
''Question''~
ドキュメントのセットアップ http://s2container.seasar.org...
を見ると、 Tomcat等 で動かすには geronimo-spec-jta-1.0.1B...
S2.3.4.zip には geronimo-spec-jta-1.0.1B-rc4.jar 含まれて...
jta.jar が入っていています。~
~
jta.jar で動作はしますが、どういう事でしょうか?~
~
~
''Answer''~
オンラインのドキュメントは一部 S2.4 のものが紛れ込んでい...
すみません.~
~
S2.4 では従来の jta.jar (Sun が配布している JTA 1.0.1B の...
Geronimo のものになりますが,S2.3 では jta.jar に読み替え...
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-January/00...
http://ml.seasar.org/archives/seasar-user/2006-January/00...
//
**instance属性でrequestを設定するとnullでエラーになる。 [...
>[[S2サポーター]] (2006-04-29 (土) 18:28:30)~
~
''Question''~
instance属性にrequestを設定して実行すると~
「[ESSR0007]requestはnullあるいは空であってはいけません」~
とエラーがでます。~
~
''Answer''~
あるコンポーネントAを利用したいコンポーネントBは、Aより~
ライフサイクルが短いもしくは同じである必要があります。~
~
今回のケースだとinstance属性がrequestのコンポーネントを~
利用するコンポーネントのinstance属性は、prototypeもしくは~
requestにする必要があります。~
~
Interceptorを使ってごにょごにょする方法もありますが、~
上記が基本です。~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-March/0052...
http://ml.seasar.org/archives/seasar-user/2006-March/0052...
~
さらに文法的に <component .... instance="request" >
と書いてあると同様のエラーになります。かならず
instance="request">
と空白を入れずにクローズしてください。Seasar2全般に
XML文法的にはセーフでも、エラーになることが多いので注意し...
というか、diconは公式サンプルをコピペしないと痛い目にあい...
//
**AutoRegisterの正しい記述順は? [#g8a39cb6]
>[[S2サポーター]] (2006-04-29 (土) 17:54:07)~
~
''Question''~
設定ファイルの AutoRegister の記述順についての質問です。~
使用している Seasar のバージョンは 2.3.4 です。~
~
ウェブサイトに~
> コンポーネントの自動登録の設定よりも後に、~
> アスペクトの自動登録の設定を記述する必要があります。~
とありますが、明示的に登録したコンポーネントと~
自動登録されたアスペクトの記述順については~
特に触れられていません。~
~
Foo <| - - FooImpl ----> Bar <| - - BarImpl~
~
という構成で、以下の設定ファイルを使用した場合、~
(a)、(b)、(c) の順に記述すると、Foo、Bar ともアスペクトが...
(a)、(c)、(b) の順に記述すると、Foo しかアスペクトが適用...
直感的には、(a)、(c)、(b) の順に記述した場合、Foo、Bar と...
適用されると期待したのですが、仕様のご確認をお願いします。~
~
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC
"-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components>
<include path="aop.dicon"/>
<!-- (a) -->
<component
class="org.seasar.framework.container.autoregister.Compo...
<initMethod name="addReferenceClass">
<arg>@org.seasar.framework.misc.Foo @ class</arg>
</initMethod>
<initMethod name="addClassPattern">
<arg>"org.seasar.framework.misc"</arg>
<arg>"F.*Impl"</arg>
</initMethod>
</component>
<!-- (b) -->
<component
class="org.seasar.framework.container.autoregister.Aspec...
<property name="interceptor">aop.traceInterceptor</p...
<initMethod name="addClassPattern">
<arg>"org.seasar.framework.misc"</arg>
<arg>".*Impl"</arg>
</initMethod>
</component>
<!-- (c) -->
<component class="org.seasar.framework.misc.BarImpl"/>
</components>
~
~
''Answer''~
(a),(c),(b) の順に記述すると,(b) の AspectAutoRegister...
アスペクトの自動登録を行う前に (c) のコンポーネントが~
初期化されてしまうため,アスペクトが適用されません.~
(a),(b),(c) の順に記述してください.~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-March/0053...
http://ml.seasar.org/archives/seasar-user/2006-March/0053...
//
**S2TestCaseのreadXls()で、オートフィルタが設定されている...
~
''Question''~
~
S2TestCaseのreadXls()で、オートフィルタが設定されているEx...
[java] Caused by: org.apache.poi.hssf.record.RecordF...
[java] at org.apache.poi.hssf.record.RecordFacto...
[java] at org.apache.poi.hssf.record.RecordFacto...
[java] at org.apache.poi.hssf.usermodel.HSSFWork...
[java] at org.apache.poi.hssf.usermodel.HSSFWork...
[java] at org.apache.poi.hssf.usermodel.HSSFWork...
[java] at org.seasar.extension.dataset.impl.XlsR...
[java] at org.seasar.extension.dataset.impl.XlsR...
~
>
''Answer''~
~
Excelファイルの読み込みに使用している Apache Jakarta プロ...
~
Seasr2 に同梱しているのは poi-2.5.1-final-20040804.jar で...
~
poi-3.0-alpha2-20060616.jar は以下からダウンロードしてく...
-http://www.meisei-u.ac.jp/mirror/apache/dist/jakarta/poi...
~
~
''参考投稿''~
http://d.hatena.ne.jp/wataka/20061130#1164816029~
//
**S2DaoTestCaseのreadXlsWriteDb()で、boolean型の値を含む...
>[[S2サポーター]] (2006-04-29 (土) 16:57:47)~
~
''Question''~
~
これまで次のような構成にて開発を行っていたのを~
~
-S2Container : 2.2.10~
-S2Dao: 1.0.28~
-DB: SQL Server 2000~
~
最近次のように変更したところ、~
~
-S2Container : 2.3.7~
-S2Dao: 1.0.32~
~
S2DaoTestCaseのreadXlsWriteDb()で、boolean型の値(テーブ...
データのINSERTの際に、例外が発生するようになってしまいま...
~
[SQLServer]構文エラー。nvarchar 値 'false' から bit デー...
~
INSERT文のログ出力を見ると、今までは、trueとなっていたの...
ようです。何か回避方法などありますでしょうか?~
~
また、似たような件で[Seasar-user:1479]にて何か変更がされ...
何か関係ありますでしょうか。~
~
>
''Answer''~
~
s2containerを修正しました、次のバージョンから反映されます...
# [Seasar-user:3182]での修正が影響していたようです。~
~
[[修正ぶんのソース:http://ml.seasar.org/archives/seasar-u...
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
//
**Seaser2.3.7のHotswap機能を使うと、IllegalArgumentExcept...
>[[S2サポーター]] (2006-04-29 (土) 16:14:14)~
~
''Question''~
-環境~
-- JDK1.5.0.06~
-- Tomcat5.5.15~
-- Seaser2.3.7~
-- S2Dao1.0.32~
-- WebWork2.2.1~
>
~Seaserを2.3.4を使用していた時、Hotswap機能を使用していま...
アプリの設定を何も変更をせずに2.3.7にバージョンアップさせ...
すると、下記エラーがはかれるようになってしまいました。~
~
java.lang.IllegalArgumentException: repeated interface:
org.seasar.framework.util.ClassTraversal$ClassHandler
at java.lang.reflect.Proxy.getProxyClass(Unknown Source)
at java.lang.reflect.Proxy.newProxyInstance(Unknown Sou...
at org.seasar.framework.hotswap.HotswapProxy.create(Hot...
at org.seasar.framework.container.deployer.SingletonCom...
at org.seasar.framework.container.deployer.SingletonCom...
at org.seasar.framework.container.deployer.SingletonCom...
at org.seasar.framework.container.impl.ComponentDefImpl...
at org.seasar.framework.container.impl.S2ContainerImpl....
at org.seasar.framework.container.factory.SingletonS2Co...
>
-Hotswap機能は2.3.4の時の設定のままでは、2.3.7では動作し...
-何か設定を変更しなければならないのでしょうか?~
>
''Answer''~
S2.3.7 で行った以下の修正のバグです.~
~
この現象は,継承関係にある複数のクラスが同じインタフェー...
実装している場合に発生します.~
~
public class Foo implements Runnable {...}
public class Bar extends Foo implements Runnable {...}
~
org.seasar.framework.hotswap.HotswapProxy#getInterfaces()...
~
static Class[] getInterfaces(Class targetClass) {
final Set interfaces = new HashSet();
Collections.addAll(interfaces, targetClass.getInt...
if (targetClass.isInterface()) {
interfaces.add(targetClass);
} else if (!targetClass.equals(Object.class)) {
Collections.addAll(interfaces, getInterfaces(...
.getSuperclass()));
}
return (Class[]) interfaces.toArray(new Class[int...
}
>
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
**コンポーネントや名前空間の名前にハイフン(-)は使えますか...
>
~
''Question''~
~
Component名に、"-"を使うことは可能でしょうか。~
"-"を含めた場合、"-"から前までがcomponent名として検索され...
~
''Answer''~
~
できません.~
コンポーネント名は Java の識別子として扱われます.~
つまり,Java の変数名などと同じ規則に従います.~
components 要素の namespace 属性も同様です.~
タグリファレンスの component タグ (の name 属性) のところ...
~
http://s2container.seasar.org/ja/DIContainer.html#compone...
~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-June/00570...
http://ml.seasar.org/archives/seasar-user/2006-June/00571...
**S2JDBCで"<"をSQLに含めると例外が出る [#p0f683e6]
''Question''
下記のSQLをS2JDBCで利用
するとSAXRuntimeException:で落ちてしまいます。
select a,b from table1 where b>=? and b<=?
または
select a,b from table1 where b>? and b<?
''Answer''
sql部分をCDATAセクションにすればOKだと思います。
''参考投稿''
http://ml.seasar.org/archives/seasar-user/2005-August/000...
**別ファイルの設定情報をdiconで使用したい [#cb95d153]
''Answer''
- http://ml.seasar.org/archives/seasar-user/2006-August/0...
- http://ml.seasar.org/archives/seasar-user/2006-August/0...
**HOT deploy時にソースコードを編集するとコンテキストのリ...
''Answer''
コンテキスト設定で、reloadableがfalseになっているか確認し...
reloadable="false"
- Sysdeo Eclipse Tomcat Launcher pluginで実行している場合
++ プロジェクトを選択し、[Properties]をクリック
++ [Tomcat] を選択
++ [このコンテキストの再読込を可能にする]のチェックを外す
++ プロジェクトを選択し、[Tomcat プロジェクト] -> [Tomcat...
--- コンテキストを更新し直さないと設定が有効になりません。
**HOT deploy時にjava.reflect.*を使用する外部ライブラリが...
''Answer''
COOL deploy時にはこの問題は発生しません。
HOT deploy時にSeasar2で管理されたクラス(コンポーネント)に...
外部ライブラリにクラスローダを設定するAPIがある場合、下記...
ClassLoader classLoader = Thread.currentThread().getCont...
- JoSQLを使用する場合の実装例
public static List getResultList(String sql, List li...
Query query = new Query();
query.setClassLoader(Thread.currentThread().getC...
try {
query.parse(sql);
if (variables != null) {
Set keySet = variables.keySet();
for (Object key : keySet) {
query.setVariable(String.valueOf(key...
}
}
return query.execute(list).getResults();
} catch (QueryParseException e) {
e.printStackTrace();
} catch (QueryExecutionException e) {
e.printStackTrace();
}
return null;
}
**HOT deploy時にThrowsInterceptorを継承したInterceptorが...
''Answer''
COOL deploy時にはこの問題は発生しません。
本問題は、S2Container 2.4.0 rc 1時点の問題です。
将来的に他の解決方法が提供されるかもしれません。
2006-08-29追記: 現在のtrunk上では、Creatorの仕様変更に伴...
S2Container正式リリース後に本FAQを訂正もしくは修正い...
- クラス: org.example.interceptor.ActionThrowsInterceptor
-- extends org.seasar.framework.aop.interceptors.ThrowsIn...
- rootPackageName: org.example
diconファイルでActionThrowsInterceptorを明示的にコンポー...
HOT deploy時に明示的に定義されていると、登録時と実行時の...
-aop.dicon (抜粋)
...
<!-- 明示的に定義してあるものを無効にします
<component name="actionThrowsInterceptor"
class="org.example.interceptor.ActionThrowsIntercept...
-->
...
-example-customizer.dicon (抜粋)
...
<component name="actionAspectCustomizer" class="org.seas...
<property name="interceptorName">"actionThrowsInterc...
</component>
...
<component name="actionCustomizer" class="org.seasar.fra...
...
<initMethod name="addCustomizer"><arg>actionAspectCu...
</component>
-example-cooldeploy.dicon (抜粋)
...
<component class="org.seasar.framework.container.coo...
<component name="project" class="org.seasar.framewor...
<property name="rootPackageName">"org.example"<...
</component>
<component class="org.seasar.framework.container.coo...
<initMethod name="addProject">
<arg>project</arg>
</initMethod>
</component>
...
-example-hotdeploy.dicon (抜粋)
...
<component class="org.seasar.framework.container.hot...
<component class="org.seasar.framework.container.hot...
<initMethod name="addProject">
<arg>
<component name="project" class="org....
<property name="rootPackageName"...
</component>
</arg>
</initMethod>
</component>
...
**S2JDBCで、Javaの型にたいしてResultSetのどのメソッドが呼...
デフォルトでは以下のとおりになります。
|Javaの型|呼ばれるメソッド|
|String|setString/getString|
|char|setString/getString|
|Character|setString/getString|
|short|setShort/getObject|
|Short|setShort/getObject|
|int|setInt/getObject|
|Integer|setInt/getObject|
|long|setLong/getObject|
|Long|setLong/getObject|
|float|setFloat/getObject|
|Float|setFloat/getObject|
|Double|setDouble/getObject|
|double|setDouble/getObject|
|BigDecimal|setBigDecimal/getBigDecimal|
|java.sql.Date|setDate/getDate|
|java.sql.Time|setTime/getTime|
|java.util.Date|setTimestamp/getTimestamp|
|Timestamp|setTimestamp/getTimestamp|
|Calaendar|setTimestamp/getTimestamp|
|byte[]|setBinaryStream/getBlob|
|InputStream|setBinaryStream/getBinaryStream|
|boolean|setBoolean/getObject|
|Boolean|setBoolean/getObject|
終了行:
[[FAQ]]
*S2Container [#q34208f8]
#contents
**diconファイルのタグ一覧ドキュメントはありますか [#r1f58...
>[[S2サポーター]] (2006-04-29 (土) 19:48:21)~
~
''Question''~
~
diconファイルに書くタグ一覧のようなドキュメントはあるので...
~
~
''Answer''~
~
diconファイルのタグは、サブプロダクトによって違わないので...
http://s2container.seasar.org/ja/DIContainer.html~
~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2005-November/0...
http://ml.seasar.org/archives/seasar-user/2005-November/0...
//
**バッチ更新処理に失敗したレコードを挿入することはできる...
>[[S2サポーター]] (2006-04-29 (土) 19:48:21)~
~
''Question''~
~バッチ更新処理に失敗したレコードを挿入することはできるか?
~
~
''Answer''~
~
~
~
~
//
**アノテーションをまとめて書いたドキュメントはありますか ...
>[[S2サポーター]] (2006-04-29 (土) 19:47:45)~
~
''Question''~
~
seasarにはいくつものサブプロダクトが有りますが、これらの...
~
~
''Answer''~
~
特にありません。個々のプロダクトのドキュメントを参照して...
S2Containerのアノテーションリファレンスは、下記のページで...
http://s2container.seasar.org/ja/DIContainer.html#Annotat...
S2Dao Tigerのアノテーションリファレンスは、下記のページで...
http://s2dao.seasar.org/ja/tiger-annotation.html~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2005-November/0...
http://ml.seasar.org/archives/seasar-user/2005-November/0...
~
まだ作りかけですが、2ちゃんねるに投稿されていた情報をもと...
//
**コンポーネントの呼び出し元のjavaからコンストラクタに渡...
>[[S2サポーター]] (2006-04-29 (土) 19:27:07)~
~
''Question''~
S2Containerリファレンスを見て、diconファイルに記述したパ...
コンストラクタに設定できるのはわかったのですが、コンポー...
コンストラクタに渡す引数を設定したい場合どのようにすれば...
~
たとえば以下のようなクラスをコンポーネントにしたい場合で...
~
public class StringUtil {
private String str;
public StringUtil(String str){
this.str = str;
}
public String[] split(String c){
return str.split(c);
}
}
~
~
''Answer''~
ひがです。~
今のところ、できません。~
直接newしたオブジェクトでもDIできるようにするという研究は...
まだ実用化するには幾つか越えなければいけないハードルがあ...
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2005-December/0...
http://ml.seasar.org/archives/seasar-user/2005-December/0...
//
**自動登録したクラスに共通の定義を適用する方法 [#o2b4363d]
>[[S2サポーター]] (2006-04-29 (土) 19:19:13)~
~
''Question''~
~
FileSystemComponentAutoRegisterで自動登録したコンポーネン...
共通のproperty、initMethodタグを適用したいのですが、可能...
~
やりたいことは、JFrameを継承したクラスすべてに対しlayout...
自動バインディングの無効化と、初期メソッドの呼び出しを行...
~
<!-- ログイン画面 -->
<component name="loginForm" class="frame.LoginFrame">
<!-- layoutプロパティは自動バインディング対象外 -->
<property name="layout" bindingType="none"/>
<!-- 画面を中央に位置する -->
<initMethod>@util.SwingUtil @ setLocationCenter(#se...
</component>
~
上記のような定義をframe.*Frameクラスに対しすべて適用し...
~
~
''Answer''~
~
JFrameを継承したクラスを作成し、そこで、~
~
@Binding(bindingType=BindingType.None)
public void setLayout(...)
@InitMethod
public void initialize() {
util.SwingUtil.setLocationCenter(this);
}
~
のようにアノテーションを記述します。~
あとは、必要なクラスでこのクラスを継承するようにします。~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-February/0...
http://ml.seasar.org/archives/seasar-user/2006-February/0...
//
**Ver 2.3.4でcomponentにJFrameを指定すると例外が発生する ...
>[[S2サポーター]] (2006-04-29 (土) 19:08:23)~
~
''Question''~
~
Ver 2.3.4 において dicon ファイルに JFrame およびその派生...
記例外が発生します。~
JDK は 1.5 を使用しています。~
~
■dicon ファイル~
<components>
<component class="javax.swing.JFrame">
</component>
</components>
~
■例外~
Exception occured at /components[1]/component[1]
org.seasar.framework.exception.IllegalAccessRuntimeExcep...
[ESSR0042]java.awt.Containerで不正なアクセスがありまし...
理由はjava.lang.IllegalAccessException:
Class org.seasar.framework.util.FieldUtil can not acces...
member of class java.awt.Container with modifiers ""
at org.seasar.framework.util.FieldUtil.get(FieldUtil...
〜(以下略)〜
~
''Answer''~
~
この問題は、2.3.4以前で発生します。~
2.3.5にて対応されました。~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-February/0...
http://ml.seasar.org/archives/seasar-user/2006-February/0...
//
**S2Tx機能を使用したテーブルの行ロックが、テーブルロック...
>[[S2サポーター]] (2006-04-29 (土) 19:06:33)~
~
''Question''~
~
○環境~
・JDK:1.4.2_03~
・S2Container:2.2.10~
・S2Dao:1.0.27~
・DB:Microsoft SQL Server~
~
~
○現象~
『トランザクション属性にj2ee.requiredTxをAspectしたクラス...
テーブルの行ロックをかけようとしたところ、行ロックではな...
~
テーブルの行ロックをかけるため下記SQLを実行し、~
「SQL Server Enterprise Manager」からロック状況を確認した...
テーブル内の全レコードに対して更新ロックがかかります。~
~
SELECT * FROM テーブル名 with(UPDLOCK,ROWLOCK)~
WHERE aaaa = 'aa';~
※aaaa:プライマリキー~
~
S2Tx機能をはずした状態~
(BEGIN TRANSACTION、COMMIT TRANSACTIONを使用した場合)で...
対象行にのみ更新ロックがかかっていることことから、~
S2Tx機能に原因があるのではと考えています。~
~
~
''Answer''~
~
S2Txは、ロックには関与していないので、~
with(UPDLOCK,ROWLOCK)を使うには、明示的に、~
BEGIN TRANSACTION、COMMIT TRANSACTIONを行う必要がある~
ということだと思います。~
~
XAに対応したJDBC Driverならそっちを使ってみるのも手です。~
j2ee.diconのxaDataSourceの部分をそのXA Driverの物に替えれ...
ただ、まともなXA Driverを見たことが余り無いので、期待でき...
~
S2Txは、JTAの仕様に合わせて、XAResourceのメソッドを呼び出...
dbcp.implのDBXAResourceのdoBegin, doCommitなどを見れば、~
実際に何が行われているのかが分かります。~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-February/0...
http://ml.seasar.org/archives/seasar-user/2006-February/0...
//
**S2.3.4のセットアップに必要なjarは「geronimo-spec-jta-1....
>[[S2サポーター]] (2006-04-29 (土) 18:44:45)~
~
''Question''~
ドキュメントのセットアップ http://s2container.seasar.org...
を見ると、 Tomcat等 で動かすには geronimo-spec-jta-1.0.1B...
S2.3.4.zip には geronimo-spec-jta-1.0.1B-rc4.jar 含まれて...
jta.jar が入っていています。~
~
jta.jar で動作はしますが、どういう事でしょうか?~
~
~
''Answer''~
オンラインのドキュメントは一部 S2.4 のものが紛れ込んでい...
すみません.~
~
S2.4 では従来の jta.jar (Sun が配布している JTA 1.0.1B の...
Geronimo のものになりますが,S2.3 では jta.jar に読み替え...
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-January/00...
http://ml.seasar.org/archives/seasar-user/2006-January/00...
//
**instance属性でrequestを設定するとnullでエラーになる。 [...
>[[S2サポーター]] (2006-04-29 (土) 18:28:30)~
~
''Question''~
instance属性にrequestを設定して実行すると~
「[ESSR0007]requestはnullあるいは空であってはいけません」~
とエラーがでます。~
~
''Answer''~
あるコンポーネントAを利用したいコンポーネントBは、Aより~
ライフサイクルが短いもしくは同じである必要があります。~
~
今回のケースだとinstance属性がrequestのコンポーネントを~
利用するコンポーネントのinstance属性は、prototypeもしくは~
requestにする必要があります。~
~
Interceptorを使ってごにょごにょする方法もありますが、~
上記が基本です。~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-March/0052...
http://ml.seasar.org/archives/seasar-user/2006-March/0052...
~
さらに文法的に <component .... instance="request" >
と書いてあると同様のエラーになります。かならず
instance="request">
と空白を入れずにクローズしてください。Seasar2全般に
XML文法的にはセーフでも、エラーになることが多いので注意し...
というか、diconは公式サンプルをコピペしないと痛い目にあい...
//
**AutoRegisterの正しい記述順は? [#g8a39cb6]
>[[S2サポーター]] (2006-04-29 (土) 17:54:07)~
~
''Question''~
設定ファイルの AutoRegister の記述順についての質問です。~
使用している Seasar のバージョンは 2.3.4 です。~
~
ウェブサイトに~
> コンポーネントの自動登録の設定よりも後に、~
> アスペクトの自動登録の設定を記述する必要があります。~
とありますが、明示的に登録したコンポーネントと~
自動登録されたアスペクトの記述順については~
特に触れられていません。~
~
Foo <| - - FooImpl ----> Bar <| - - BarImpl~
~
という構成で、以下の設定ファイルを使用した場合、~
(a)、(b)、(c) の順に記述すると、Foo、Bar ともアスペクトが...
(a)、(c)、(b) の順に記述すると、Foo しかアスペクトが適用...
直感的には、(a)、(c)、(b) の順に記述した場合、Foo、Bar と...
適用されると期待したのですが、仕様のご確認をお願いします。~
~
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC
"-//SEASAR//DTD S2Container//EN"
"http://www.seasar.org/dtd/components.dtd">
<components>
<include path="aop.dicon"/>
<!-- (a) -->
<component
class="org.seasar.framework.container.autoregister.Compo...
<initMethod name="addReferenceClass">
<arg>@org.seasar.framework.misc.Foo @ class</arg>
</initMethod>
<initMethod name="addClassPattern">
<arg>"org.seasar.framework.misc"</arg>
<arg>"F.*Impl"</arg>
</initMethod>
</component>
<!-- (b) -->
<component
class="org.seasar.framework.container.autoregister.Aspec...
<property name="interceptor">aop.traceInterceptor</p...
<initMethod name="addClassPattern">
<arg>"org.seasar.framework.misc"</arg>
<arg>".*Impl"</arg>
</initMethod>
</component>
<!-- (c) -->
<component class="org.seasar.framework.misc.BarImpl"/>
</components>
~
~
''Answer''~
(a),(c),(b) の順に記述すると,(b) の AspectAutoRegister...
アスペクトの自動登録を行う前に (c) のコンポーネントが~
初期化されてしまうため,アスペクトが適用されません.~
(a),(b),(c) の順に記述してください.~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-March/0053...
http://ml.seasar.org/archives/seasar-user/2006-March/0053...
//
**S2TestCaseのreadXls()で、オートフィルタが設定されている...
~
''Question''~
~
S2TestCaseのreadXls()で、オートフィルタが設定されているEx...
[java] Caused by: org.apache.poi.hssf.record.RecordF...
[java] at org.apache.poi.hssf.record.RecordFacto...
[java] at org.apache.poi.hssf.record.RecordFacto...
[java] at org.apache.poi.hssf.usermodel.HSSFWork...
[java] at org.apache.poi.hssf.usermodel.HSSFWork...
[java] at org.apache.poi.hssf.usermodel.HSSFWork...
[java] at org.seasar.extension.dataset.impl.XlsR...
[java] at org.seasar.extension.dataset.impl.XlsR...
~
>
''Answer''~
~
Excelファイルの読み込みに使用している Apache Jakarta プロ...
~
Seasr2 に同梱しているのは poi-2.5.1-final-20040804.jar で...
~
poi-3.0-alpha2-20060616.jar は以下からダウンロードしてく...
-http://www.meisei-u.ac.jp/mirror/apache/dist/jakarta/poi...
~
~
''参考投稿''~
http://d.hatena.ne.jp/wataka/20061130#1164816029~
//
**S2DaoTestCaseのreadXlsWriteDb()で、boolean型の値を含む...
>[[S2サポーター]] (2006-04-29 (土) 16:57:47)~
~
''Question''~
~
これまで次のような構成にて開発を行っていたのを~
~
-S2Container : 2.2.10~
-S2Dao: 1.0.28~
-DB: SQL Server 2000~
~
最近次のように変更したところ、~
~
-S2Container : 2.3.7~
-S2Dao: 1.0.32~
~
S2DaoTestCaseのreadXlsWriteDb()で、boolean型の値(テーブ...
データのINSERTの際に、例外が発生するようになってしまいま...
~
[SQLServer]構文エラー。nvarchar 値 'false' から bit デー...
~
INSERT文のログ出力を見ると、今までは、trueとなっていたの...
ようです。何か回避方法などありますでしょうか?~
~
また、似たような件で[Seasar-user:1479]にて何か変更がされ...
何か関係ありますでしょうか。~
~
>
''Answer''~
~
s2containerを修正しました、次のバージョンから反映されます...
# [Seasar-user:3182]での修正が影響していたようです。~
~
[[修正ぶんのソース:http://ml.seasar.org/archives/seasar-u...
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
//
**Seaser2.3.7のHotswap機能を使うと、IllegalArgumentExcept...
>[[S2サポーター]] (2006-04-29 (土) 16:14:14)~
~
''Question''~
-環境~
-- JDK1.5.0.06~
-- Tomcat5.5.15~
-- Seaser2.3.7~
-- S2Dao1.0.32~
-- WebWork2.2.1~
>
~Seaserを2.3.4を使用していた時、Hotswap機能を使用していま...
アプリの設定を何も変更をせずに2.3.7にバージョンアップさせ...
すると、下記エラーがはかれるようになってしまいました。~
~
java.lang.IllegalArgumentException: repeated interface:
org.seasar.framework.util.ClassTraversal$ClassHandler
at java.lang.reflect.Proxy.getProxyClass(Unknown Source)
at java.lang.reflect.Proxy.newProxyInstance(Unknown Sou...
at org.seasar.framework.hotswap.HotswapProxy.create(Hot...
at org.seasar.framework.container.deployer.SingletonCom...
at org.seasar.framework.container.deployer.SingletonCom...
at org.seasar.framework.container.deployer.SingletonCom...
at org.seasar.framework.container.impl.ComponentDefImpl...
at org.seasar.framework.container.impl.S2ContainerImpl....
at org.seasar.framework.container.factory.SingletonS2Co...
>
-Hotswap機能は2.3.4の時の設定のままでは、2.3.7では動作し...
-何か設定を変更しなければならないのでしょうか?~
>
''Answer''~
S2.3.7 で行った以下の修正のバグです.~
~
この現象は,継承関係にある複数のクラスが同じインタフェー...
実装している場合に発生します.~
~
public class Foo implements Runnable {...}
public class Bar extends Foo implements Runnable {...}
~
org.seasar.framework.hotswap.HotswapProxy#getInterfaces()...
~
static Class[] getInterfaces(Class targetClass) {
final Set interfaces = new HashSet();
Collections.addAll(interfaces, targetClass.getInt...
if (targetClass.isInterface()) {
interfaces.add(targetClass);
} else if (!targetClass.equals(Object.class)) {
Collections.addAll(interfaces, getInterfaces(...
.getSuperclass()));
}
return (Class[]) interfaces.toArray(new Class[int...
}
>
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
http://ml.seasar.org/archives/seasar-user/2006-April/0054...
**コンポーネントや名前空間の名前にハイフン(-)は使えますか...
>
~
''Question''~
~
Component名に、"-"を使うことは可能でしょうか。~
"-"を含めた場合、"-"から前までがcomponent名として検索され...
~
''Answer''~
~
できません.~
コンポーネント名は Java の識別子として扱われます.~
つまり,Java の変数名などと同じ規則に従います.~
components 要素の namespace 属性も同様です.~
タグリファレンスの component タグ (の name 属性) のところ...
~
http://s2container.seasar.org/ja/DIContainer.html#compone...
~
~
~
''参考投稿''~
http://ml.seasar.org/archives/seasar-user/2006-June/00570...
http://ml.seasar.org/archives/seasar-user/2006-June/00571...
**S2JDBCで"<"をSQLに含めると例外が出る [#p0f683e6]
''Question''
下記のSQLをS2JDBCで利用
するとSAXRuntimeException:で落ちてしまいます。
select a,b from table1 where b>=? and b<=?
または
select a,b from table1 where b>? and b<?
''Answer''
sql部分をCDATAセクションにすればOKだと思います。
''参考投稿''
http://ml.seasar.org/archives/seasar-user/2005-August/000...
**別ファイルの設定情報をdiconで使用したい [#cb95d153]
''Answer''
- http://ml.seasar.org/archives/seasar-user/2006-August/0...
- http://ml.seasar.org/archives/seasar-user/2006-August/0...
**HOT deploy時にソースコードを編集するとコンテキストのリ...
''Answer''
コンテキスト設定で、reloadableがfalseになっているか確認し...
reloadable="false"
- Sysdeo Eclipse Tomcat Launcher pluginで実行している場合
++ プロジェクトを選択し、[Properties]をクリック
++ [Tomcat] を選択
++ [このコンテキストの再読込を可能にする]のチェックを外す
++ プロジェクトを選択し、[Tomcat プロジェクト] -> [Tomcat...
--- コンテキストを更新し直さないと設定が有効になりません。
**HOT deploy時にjava.reflect.*を使用する外部ライブラリが...
''Answer''
COOL deploy時にはこの問題は発生しません。
HOT deploy時にSeasar2で管理されたクラス(コンポーネント)に...
外部ライブラリにクラスローダを設定するAPIがある場合、下記...
ClassLoader classLoader = Thread.currentThread().getCont...
- JoSQLを使用する場合の実装例
public static List getResultList(String sql, List li...
Query query = new Query();
query.setClassLoader(Thread.currentThread().getC...
try {
query.parse(sql);
if (variables != null) {
Set keySet = variables.keySet();
for (Object key : keySet) {
query.setVariable(String.valueOf(key...
}
}
return query.execute(list).getResults();
} catch (QueryParseException e) {
e.printStackTrace();
} catch (QueryExecutionException e) {
e.printStackTrace();
}
return null;
}
**HOT deploy時にThrowsInterceptorを継承したInterceptorが...
''Answer''
COOL deploy時にはこの問題は発生しません。
本問題は、S2Container 2.4.0 rc 1時点の問題です。
将来的に他の解決方法が提供されるかもしれません。
2006-08-29追記: 現在のtrunk上では、Creatorの仕様変更に伴...
S2Container正式リリース後に本FAQを訂正もしくは修正い...
- クラス: org.example.interceptor.ActionThrowsInterceptor
-- extends org.seasar.framework.aop.interceptors.ThrowsIn...
- rootPackageName: org.example
diconファイルでActionThrowsInterceptorを明示的にコンポー...
HOT deploy時に明示的に定義されていると、登録時と実行時の...
-aop.dicon (抜粋)
...
<!-- 明示的に定義してあるものを無効にします
<component name="actionThrowsInterceptor"
class="org.example.interceptor.ActionThrowsIntercept...
-->
...
-example-customizer.dicon (抜粋)
...
<component name="actionAspectCustomizer" class="org.seas...
<property name="interceptorName">"actionThrowsInterc...
</component>
...
<component name="actionCustomizer" class="org.seasar.fra...
...
<initMethod name="addCustomizer"><arg>actionAspectCu...
</component>
-example-cooldeploy.dicon (抜粋)
...
<component class="org.seasar.framework.container.coo...
<component name="project" class="org.seasar.framewor...
<property name="rootPackageName">"org.example"<...
</component>
<component class="org.seasar.framework.container.coo...
<initMethod name="addProject">
<arg>project</arg>
</initMethod>
</component>
...
-example-hotdeploy.dicon (抜粋)
...
<component class="org.seasar.framework.container.hot...
<component class="org.seasar.framework.container.hot...
<initMethod name="addProject">
<arg>
<component name="project" class="org....
<property name="rootPackageName"...
</component>
</arg>
</initMethod>
</component>
...
**S2JDBCで、Javaの型にたいしてResultSetのどのメソッドが呼...
デフォルトでは以下のとおりになります。
|Javaの型|呼ばれるメソッド|
|String|setString/getString|
|char|setString/getString|
|Character|setString/getString|
|short|setShort/getObject|
|Short|setShort/getObject|
|int|setInt/getObject|
|Integer|setInt/getObject|
|long|setLong/getObject|
|Long|setLong/getObject|
|float|setFloat/getObject|
|Float|setFloat/getObject|
|Double|setDouble/getObject|
|double|setDouble/getObject|
|BigDecimal|setBigDecimal/getBigDecimal|
|java.sql.Date|setDate/getDate|
|java.sql.Time|setTime/getTime|
|java.util.Date|setTimestamp/getTimestamp|
|Timestamp|setTimestamp/getTimestamp|
|Calaendar|setTimestamp/getTimestamp|
|byte[]|setBinaryStream/getBlob|
|InputStream|setBinaryStream/getBinaryStream|
|boolean|setBoolean/getObject|
|Boolean|setBoolean/getObject|
ページ名: