XSL: невозможно преобразовать аргумент / тип возврата при вызове метода
У меня есть 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>)
РЕДАКТИРОВАТЬ: это вызываемая функция из открытого статического String getResourceString файла XSL (final String messageKey, final String locale, final String customerIndex) { .,
}
Я искал в Интернете и нашел решение, которое говорит мне использовать только объекты (не примитивы) при вызове функции из моего XSL-файла в мой код Java, и из-за этого я получаю эти ошибки, но здесь мне ничего не помогло,
Большая проблема здесь в том, что я не понимаю, в чем заключается ошибка и как ее устранить, что мне нужно делать в соответствии с выданным Исключением?
Любые другие предложения по решению этой проблемы приветствуются
1 ответ
Сообщение об ошибке говорит о том, что вы передаете несоответствующие аргументы функции. Похоже, что метод ожидает (строка, строка, строка), и вы передаете (набор-нод, набор-нод, int). Я плохо знаю Xalan, но попробуйте выполнить явное преобразование предоставленных аргументов в требуемый тип, вызвав number () или string().