Ich verwende thymeleaf
Vorlage-Engine, um Anfrage an SOAP-Service zu erstellen. Die Klasse, die das Senden sieht wie folgt aus:Thymelpflaume | Ist TemplateEngine.process Thread-sichere Operation?
import java.io.StringReader;
import java.util.*;
import javax.xml.transform.stream.*;
import org.springframework.ws.client.core.WebServiceTemplate;
import org.thymeleaf.*;
import org.thymeleaf.context.*;
import org.thymeleaf.templateresolver.*;
public class SomeService
{
private final TemplateEngine templateEngine;
private final WebServiceTemplate webServiceTemplate;
public RetrieveServiceThymeleafBased() {
webServiceTemplate = new WebServiceTemplate();
webServiceTemplate.setDefaultUri("http://some.path/to/soap/service");
ITemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateEngine = new TemplateEngine();
templateEngine.addTemplateResolver(templateResolver);
}
public void sendMessage(String orderNumber) {
Context params = new Context();
params.setVariable("CreateDateTime", new Date());
params.setVariable("GUID", UUID.randomUUID());
String xmlContent = templateEngine.process("template.xml", params);
StreamSource source = new StreamSource(new StringReader(xmlContent));
StreamResult result = new StreamResult(System.out);
webServiceTemplate.sendSourceAndReceiveToResult(source, result);
}
}
Ich weiß, dass webServiceTemplate.sendSourceAndReceiveToResult
- Thread-sichere Betrieb ist, aber ich kann nicht diese Art von Informationen über templateEngine.process
Frage finden: Ist templateEngine.process
ein Gewinde- sicherer Betrieb oder nicht
Wow! Danke! – CAMOBAP
Schön es zu hören, aber da es eine ziemlich komplexe Verflechtung von Thymelaft und Frühling ist, passieren Dinge - [Thymeleaf currency error ...] (https://github.com/thymeleaf/thymeleaf-spring/issues/83). ... Seien Sie also vorsichtig –
Haben Sie einen kleinen Kommentar in der Javadoc. Das war die erste Information, die ich thread-safe/concurrent suchte. Es wird erwähnt, dass Instanziierung teuer ist. Nächster Gedanke ist dann 'Singleton verwenden' nächsten Gedanken ist dann ist es 'Thread-Sicherheit' ... –