Search code examples
javaspringservletsweb.xmlservlet-3.0

How to specify mime-mapping using servlet 3.0 java config?


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>

Solution

  • 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);
      }
    }