Skip to content

RestTemplate (and probably server side as well) should be able to bootstrap itself if com.sun.org.apache.xalan.* is not available [SPR-17007] #21545

@spring-projects-issues

Description

@spring-projects-issues

Dave Syer opened SPR-17007 and commented

If SourceHttpMessageConverter fails to initialize itself it blows up a RestTemplate and then the whole bean factory on startup:

Caused by: javax.xml.transform.TransformerFactoryConfigurationError: Provider com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl not found
	at java.lang.Throwable.<init>(Throwable.java:265)
	at java.lang.Error.<init>(Error.java:70)
	at javax.xml.transform.TransformerFactoryConfigurationError.<init>(TransformerFactoryConfigurationError.java:91)
	at javax.xml.transform.FactoryFinder.newInstance(FactoryFinder.java:181)
	at javax.xml.transform.FactoryFinder.find(FactoryFinder.java:261)
	at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:106)
	at org.springframework.http.converter.xml.SourceHttpMessageConverter.<init>(SourceHttpMessageConverter.java:86)
	at org.springframework.web.client.RestTemplate.<init>(RestTemplate.java:181)
	at org.springframework.boot.autoconfigure.http.HttpMessageConverters.getDefaultConverters(HttpMessageConverters.java:204)
	at org.springframework.boot.autoconfigure.http.HttpMessageConverters.<init>(HttpMessageConverters.java:106)
	at org.springframework.boot.autoconfigure.http.HttpMessageConverters.<init>(HttpMessageConverters.java:92)
	at org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration.messageConverters(HttpMessageConvertersAutoConfiguration.java:72)

The presence of a default implementation of TransformerFactory appears to be platform dependent, so RestTemplate and friends probably ought not to rely on their existence. E.g. a defensive type check might be needed.


Affects: 5.0.7

Issue Links:

Referenced from: commits b09fad1

Metadata

Metadata

Assignees

Labels

in: webIssues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions