[Seasar-user:8444] [S2] XIncludeできません

松崎 学 [E-MAIL ADDRESS DELETED]
2007年 6月 18日 (月) 21:42:39 JST


松崎です。

いつもお世話になっております。

app.diconで別のdiconファイルをXIncludeしたいのですが、
例外が出て画面が全く動かなくなってしまいました。。。

・使用しているバージョン
s2-framework-2.4.13.jar
s2-extension-2.4.13.jar
s2-tiger-2.4.13.jar
teeda-core-1.0.7.jar
teeda-extension-1.0.7.jar
teeda-tiger-1.0.7.jar
teeda-ajax-1.0.7.jar
s2-dao-1.0.43.jar
s2-dao-tiger-1.0.43.jar
jdk1.5.0_10
※xercesは現在未使用です。(2.6.2でも、2.7.0でも同じ結果でした)

元々何がしたかったかと言うと、
国際化対応を独自ロジックで行わなくてはいけなくなったので、
label.propertiesの代わりにdiconに英語・日本語のリソースを記述して
Validatorエラー時のラベル表示でそれを使いたいのです。

Teedaの国際化対応機能を使いたかったのですが、英語・日本語は
ログイン時にユーザが選択するという要件があるのです。。。

変更前はapp.diconで普通にincludeしていたのですが、
diconのコンポーネントがDIされなかったので、XIncludeにしてみました。

対応方法をご教授いただけないでしょうか?
diconファイルは以下の様に書いてます。

・app.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
    "http://www.seasar.org/dtd/components24.dtd">
<components xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:include href="/convention.dicon"/>
    <xi:include href="/aop.dicon"/>
    <xi:include href="/app_aop.dicon"/>
    <xi:include href="/teedaExtension.dicon"/>
    <xi:include href="/dao.dicon"/>
    <xi:include href="/dxo.dicon"/>
    <xi:include href="/dbsession.dicon"/>
    <!-- ■■■■ ValidatorにDIしたいコンポーネント ■■■■ -->
    <xi:include href="/hoge/allValidatorLabels.dicon"/>
</components>

・allValidatorLabels.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
    "http://www.seasar.org/dtd/components24.dtd">
<components>
    <component name="allValidatorLabels" class="java.util.HashMap" instance="prototype">
        <initMethod name="put">
            <arg>"inAppCd"</arg>
            <arg>
                <component class="java.util.HashMap">
                    <initMethod name="put">
                        <arg>"JPN"</arg>
                        <arg>"申請者"</arg>
                    </initMethod>
                    <initMethod name="put">
                        <arg>"ENG"</arg>
                        <arg>"english label"</arg>
                    </initMethod>
                </component>
            </arg>
        </initMethod>
    </component>
</components>

・発生した例外
javax.servlet.ServletException: サーブレット facesServlet のServlet.init()が例外を投げました
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	java.lang.Thread.run(Thread.java:595)
java.lang.IllegalStateException: no factory javax.faces.context.FacesContextFactory configured for this appliction
	javax.faces.FactoryFinder.getFactory(FactoryFinder.java:48)
	javax.faces.internal.WebAppUtil.getFactory(WebAppUtil.java:142)
	javax.faces.webapp.FacesServlet.init(FacesServlet.java:67)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	java.lang.Thread.run(Thread.java:595)





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