2017-05-18 16 views
0

Javaを使用してXMLを変換するために使用するXSLTがあります。私はEclipseでそれを実行し、Apache Tomcatを使用すると、コードは正常に動作しています。しかし、earファイルをWebSphereにデプロイすると、フィールドは空白として表示されます。誰にもアイデアはありますか?Websphere - Transformer.setParameter not working

Java変数 'reportId'と 'proposalId'は、System.out.println()を使用して設定され、値が設定されていることがわかります。

Javaコード //私は、パラメータを読み込むためにXSLTで次のように使用

Templates template = factory.newTemplates(new StreamSource(is));    

// Use the template to create a transformer 
Transformer xformer = template.newTransformer(); 
xformer.setParameter("reportId", reportId); 
xformer.setParameter("proposalId", proposalId); 


<xsl:param name="proposalId"/> 
<xsl:param name="reportId"/> 

XSLファイルを含むテンプレートを作成するための工場を使用します。

<td align="left"><b>Proposal Ref: </b> <xsl:value-of select="$proposalId"/> </td> <td align="left"><b>Report Id: </b> <xsl:value-of select="$reportId"/> </td>

答えて

0

私はテンプレートタグ内にparamがあることがわかりました。変圧器はテンプレートレベル変数の値を設定することはできません。グローバルレベル変数でのみ設定できます。だから私のコードは次のようなものだった:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html"/> 
<xsl:template match="/"> 

<xsl:param name="proposalId"/> 
<xsl:param name="reportId"/> 

</xsl:template> 
</xsl:stylesheet> 

が、それはされている必要があります:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html"/> 
<xsl:param name="proposalId"/> 
<xsl:param name="reportId"/> 
<xsl:template match="/"> 

</xsl:template> 
</xsl:stylesheet>