Я использую docx4j (docx4j-core 11.3.2) для создания некоторых отчетов docx на основе шаблонов в моем приложении весенней загрузки. Однако иногда, когда 2 потока A и B (2 веб-вызова) обращаются к моему методу создания отчета, содержимое отчета смешивается, в результате чего некоторые данные из A попадают в отчет B и наоборот.
Код для получения шаблона и инициализации docx4j WordprocessingMLPackage:
Код: Выделить всё
try (InputStream inputStream = getClass().getResourceAsStream(templateName)) {
WordprocessingMLPackage wordPackage = WordprocessingMLPackage.load(inputStream);
// ...report generation code
}
Интересно, проблема с потокобезопасностью заключается в загрузке ресурса getClass().getResourceAsStream(templateName)) или в загрузке фактического WordprocessingMLPackage WordprocessingMLPackage wordPackage = WordprocessingMLPackage.load (inputStream); или, может быть, это совсем другая проблема.
Я использую Java 17.
Подробнее здесь:
https://stackoverflow.com/questions/792 ... pplication