-
Notifications
You must be signed in to change notification settings - Fork 38.8k
Description
Kek opened SPR-11351 and commented
The default MessageConverters are initialized in constructor of RestTemplate. This solution has some problems:
-
When I want different set of MessageConverters, the default MessageConverters are initialized first and than replaced by setMessageConverters(..) method. This slows down the application startup.
-
When I have some classes as JAXB, Jackson on classpath, than some other default converters are initialized too (but I don't use these technologies (JAXB, Jackson) with RestTempate) - this slows down the startup, so I want to specify my "limited" set of Converters - but is the same problem as 1).
-
When I have 2 WAR applications in Tomcat, and one application sets the System property "javax.xml.transform.TransformerFactory" for Xalan XSLTC, and the second application does not have Xalan on classpath and does not use the XSLT,but instantiates RestTemplate for JSON based communication, than Exception is thrown:
Caused by: javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.xsltc.trax.TransformerFactoryImpl not found
at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:107)
at org.springframework.http.converter.xml.AbstractXmlHttpMessageConverter.<init>(AbstractXmlHttpMessageConverter.java:47)
at org.springframework.http.converter.xml.SourceHttpMessageConverter.<init>(SourceHttpMessageConverter.java:47)
at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:154)I don´t want to initialize any default XML message Converter for RestTemplate, because I use only JSON for communication -> I want to configure my own set of MessageConverters, but the constructor is called first and destroyed by the exception.
So please, move the initialization of default MessageConvertors for RestTemplate from constructor to some @PostConstruct method, and initialize these default converters only in situations, when the Array of converters was not set (preinitialized) by setMessageConventers(...) operation from configuration.
Affects: 3.2.4, 4.0 GA
Issue Links:
- Backward compatibility issue in RestTemplate's messageConverters after SPR-11351 [SPR-11962] #16578 Backward compatibility issue in RestTemplate's messageConverters after SPR-11351
Referenced from: commits 1cb9b9c, 425e5a0
Backported to: 3.2.7
0 votes, 8 watchers