Cocoon2のXSLTProcessorをとりかえる |
私がまだジャングル戦の虎と呼ばれていた頃、(帰れ)
次のようなことがありました。
XSLTのdocument関数で、XML文書から別のXML文書を参照することで、
複数のXML文書を合成して1つのHTMLを出力する処理を初めて書いたのですが、
そのURIをWebブラウザから要求するとCocoonが全く反応しなくなる、
という現象が起きました。
その変換はコマンドラインのXSLTプロセッサやBaykitのBSBでは正常に処理されます。
困っていろいろ試すと、次のように、XSLTProcessorをとりかえるとうまくいきました。
●$COCOON_HOME/WEB-INF/cocoon.xconfの編集
上から5分の1あたりにある次の部分です。
パラメータtransformer-factoryを次のようにしました。
<xslt-processor class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"
logger="core.xslt-processor"
role="org.apache.cocoon.components.xslt.XSLTProcessor/Saxon">
<parameter name="use-store" value="true"/>
<parameter name="incremental-processing" value="false"/>
<parameter name="transformer-factory"
value="com.icl.saxon.TransformerFactoryImpl"/>
</xslt-processor>
|
●sitemap.xmapの編集
次に、sitemap.xmapの普通冒頭部にあるmap:transformersの中の一節を、
次のように編集します。
<map:transformers default="xslt">
<map:transformer name="xslt-saxon" pool-grow="2" pool-max="32" pool-min="8"
src="org.apache.cocoon.transformation.TraxTransformer">
<use-request-parameters>false</use-request-parameters>
<use-browser-capabilities-db>false</use-browser-capabilities-db>
<xslt-processor-role>
org.apache.cocoon.components.xslt.XSLTProcessor/Saxon
</xslt-processor-role>
</map:transformer>
</map:transformers>
|
(first uploaded 2003/01/30 last updated 2003/01/30, URANO398)
|