0

Mule 3.2を使用して、ラバフロー内からXMLを構築しようとしていますが、このエラーが発生します。オンラインでいくつかのアイデアを試しましたが、このメッセージが表示され続けます。

   <mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" doc:name="XSLT">
    <mulexml:xslt-text>
        <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:output method="xml" omit-xml-declaration="yes" />
                <xsl:param name="numericId"/>
                <xsl:param name="name"/>
                <xsl:param name="url"/>                             
                <xsl:template match="*">            
                <Publisher>
                <numericId><xsl:value-of select="$numericId"/></numericId>
                <name><xsl:value-of select="$name"/></name>
                <url><xsl:value-of select="$url"/></url>                    
                </Publisher>                    
            </xsl:template>
        </xsl:stylesheet>
    </mulexml:xslt-text>
    <mulexml:context-property key="numericId" value="#[header:SESSION:numericId]"/>
    <mulexml:context-property key="name" value="#[header:SESSION:name]"/>
    <mulexml:context-property key="url" value="#[header:SESSION:url]"/>     
    </mulexml:xslt-transformer>

エラー:

******************************************************************************** Message               : org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. (net.sf.saxon.trans.DynamicError) Code                  : MULE_ERROR-64999
-------------------------------------------------------------------------------- Exception stack is:
1. Content is not allowed in prolog. (org.xml.sax.SAXParseException)   org.apache.xerces.util.ErrorHandlerWrapper:-1 (null)
2. org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. (net.sf.saxon.trans.DynamicError)   net.sf.saxon.event.Sender:308 (null)
3. org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. (net.sf.saxon.trans.DynamicError) (org.mule.api.transformer.TransformerException)   org.mule.module.xml.transformer.XsltTransformer:190 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerException.html)
--------------------------------------------------------------------------------
Root Exception stack trace: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1;
 Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
4

3 に答える 3

1

XSLT トランスフォーマーを実行する前に、メッセージ ペイロードに XML があることを確認してください。たとえば、XSLT の前に Object-to-XML トランスフォーマーを使用できます。

于 2013-01-09T15:37:16.980 に答える
1

これは、ファイルの開始部分と xml 宣言の間にスペースがある場合に発生します。それがない場合、先頭にBOMマーカーがある UTF-8 ファイルを処理している場合、状況によっては発生する可能性があります (Java で発生することはわかっています)。

これは、そのスペースとして誤って解釈されます。以前(Java 5で)問題が発生したとき、それを修正するためにUTF8処理の入力ソースを作成する必要があったことを知っています(マーカーを削除できない場合)。

編集:SAXだけでなく、Javaの問題のバグの説明です

于 2012-07-25T12:51:07.190 に答える
0

xslt-textXML Mule 設定との干渉を避けるために、XSL ファイルで を外部化してみてください。

また、XSLT トランスフォーマーにフィードする方法も示していません。問題は、フィードしているデータの前にある可能性があります。

于 2012-07-25T15:12:26.707 に答える