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>

Baykit and Cocoon Top

(first uploaded 2003/01/30 last updated 2003/01/30, URANO398)

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル