[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 メーリングリストの案内