[Seasar-user:4553] [S2Struts]Servletコンテナ上でDxoがInjectionされない

Yasuhiro Oguro [E-MAIL ADDRESS DELETED]
2006年 9月 6日 (水) 14:08:20 JST


お疲れ様です。小黒と申します。

S2-2.3.11上で
S2Struts1.2.6のAutoStrutsConfigRegisterPlugInを使って
S2Dao1.0.35とS2Dxo1.0.0-RC1を使おうとして、
うまく行かず困っています。(本件にDaoは関係していないと思いますが)

public class WorkTimeLogicImpl implements WorkTimeLogic {
	WorkTimeDxo workTimeDxo;

	public TimeCard convert(WorkTime workTime) {
		TimeCard timeCard = workTimeDxo.convert(workTime);
		return timeCard;
	}
}
と書いたときにworkTimeDxoが解決されずnullになってしまいます。
どこを見たらよいのか検討もつかない状況です。
testcaseはうまく動くのですが・・・
public class WorkTimeDxoTest extends S2TestCase{
	private WorkTimeDxo workTimeDxo;
	
	public void setUp(){
		include("app.dicon");
	}

	 public void testInvoke() {
		WorkTime workTime = new WorkTime();
		workTime.getEmployee().setEmployeeCd("9999");
		TimeCard timeCard =workTimeDxo.convert(workTime);
		assertEquals("9999", timeCard.getEmployeeCd());
	}
}
interface定義は
public interface WorkTimeDxo {
	TimeCard convert(WorkTime workTime);
	WorkTime convert(TimeCard timeCard);
}
public interface TimeCardDao {
	public static final Class BEAN = TimeCardDaoDto.class;
	。。。
}
にしています。TimeCardDaoDtoはTimeCardクラスを継承しています。

app.diconは
<components>
	<include path="s2struts.dicon" />
	<include path="allaop.dicon" />
	<include path="alldao.dicon" />
	<include path="s2dxo.dicon" />
<!-- singleton -->
	<component name="workTimeDxo" class="hoge.dxo.WorkTimeDxo">
		<aspect>s2dxo.s2DxoIntereceptor</aspect>
	</component>
	。。。
<components>
です。作法に則ってないのがよくないのでしょうか・・・

コンポーネントの定義が足りていないのでしょうか?

---
NEEC System Technology Corp. Co. ★.。.:*・°
Y.Oguro <[E-MAIL ADDRESS DELETED]>




Seasar-user メーリングリストの案内