I am using Servlet 3.0 and looking to convert my existing web.xml file to java config. Configuring servlets/filters etc seems to be pretty straight away. I can't figure out how to convert the following mime-mapping. Can anyone help me out?
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
I faced this problem in a Spring Boot application. My solution was to create a class that implements org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer
as following:
@Configuration
public class MyMimeMapper implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
mappings.add("xsd", "text/xml; charset=utf-8");
container.setMimeMappings(mappings);
}
}
Just write a Filter
. e.g. for mime-mapping in web.xml:
<mime-mapping>
<extension>mht</extension>
<mime-type>message/rfc822</mime-type>
</mime-mapping>
We can write a Filter instead:
@WebFilter("*.mht")
public class Rfc822Filter implements Filter {
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
resp.setContentType("message/rfc822");
chain.doFilter(req, resp);
}
...
}
Using spring MVC, this method worked for me.
In the web-context, add this:
public class WebContext implements WebMvcConfigurer {
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.mediaType("xsd", MediaType.TEXT_XML);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With