我有XSL文件,我正在尝试通过我的应用程序生成该文件。
代码如下:
TransformerFactory factory = TransformerFactory.newInstance();
Source styleSheetLoc = new ResourceSource(styleSheetLocation);
Templates t = factory.newTemplates(styleSheetLoc); // <<< throwing the Exception
return t.newTransformer();
例外是:
ERROR: 'Cannot find external method 'com.am.caretalks.util.XsltUtils.getResourceString' (must be public).'
FATAL ERROR: 'Cannot convert argument/return type in call to method 'com.am.caretalks.util.XsltUtils.getResourceString(node-set, node-set, int)''
javax.xml.transform.TransformerConfigurationException: Cannot convert argument/return type in call to method 'com.am.caretalks.util.XsltUtils.getResourceString(node-set, node-set, int)'
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:990)
at com.am.caretalks.sendreport.CreatePDF.buildTransformer(CreatePDF.java:1147)
at com.am.caretalks.sendreport.CreatePDF.createProviderEngagementPDF(CreatePDF.java:608)
at com.am.caretalks.sendreport.CreatePDF.createProviderEngagementPDF(CreatePDF.java:586)
at com.am.caretalks.admin.EngagementReportExportServiceImpl.exportAndUpload(EngagementReportExportServiceImpl.java:131)
at com.am.caretalks.admin.EngagementReportExportServiceImpl$$FastClassBySpringCGLIB$$38327504.invoke(<generated>)
编辑: 这是XSL文件中的调用函数 公共静态字符串getResourceString(最终字符串messageKey,最终字符串语言环境,最终字符串customerIndex){ 。
}
我在网上搜索,发现了一个解决方案,该解决方案告诉我从XSL文件到Java代码调用函数时仅使用对象(而不是原语),并且由于出现这些错误,所以没有采取任何措施在这里帮助了我。
这里最大的问题是我不了解错误是什么以及如何解决它,根据抛出的异常我该怎么办?
欢迎提出其他解决此问题的建议
答案 0 :(得分:0)
该错误消息表明您正在向函数传递不合适的参数。似乎方法期望(字符串,字符串,字符串),并且您正在传递(节点集,节点集,整数)。我不太了解Xalan,但是请尝试通过调用number()或string()将提供的参数显式转换为所需的类型。