-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Ryan,
On 2/20/17 10:38 AM, Ryan Yohnk wrote: > I’ve come across a problem for which the “mime-mapping” element > would be a good solution. Specifically I have a web application > who’s source I can’t change, it’s not returning a specific > Content-Type header and I’d like to start utilizing compression > based on the mime-type. > > Durning my investigation I created a trivial web app for testing > but was unable to get the mime-type specified in the mime-mapping > applied to requests sent to the specific extension. This was with > Tomcat 8.0.33. The details can be found below or at the stack > overflow post here: > http://stackoverflow.com/questions/42261607/tomcat-8-0-mime-mapping-co ntent-type. Just > so you know, the mime-mapping only applies to resources served by the DefaultServlet. If the application is accepting a request to e.g. /my-file.txt, then the content-type isn't automatically being set to "text/plain" by Tomcat... it's up to the servlet to do that. The Mime-Mappings are available to servlets, but it's pretty rare for a custom servlet to bother actually using them. > As noted in the SO post, I can see that > StandardContext:addMimeMapping() is being called with my specific > mapping during initialization. But I’m never seeing the backing > mimeMappings called from there. > > I’ve seen quite a few online posts on this topic but can’t seem > find any official documentation for 8+. Is this feature something > that’s still supported? If so, is there something I’m overlooking > in my test or configuration? > > Any light you guys can shine on the subject would be greatly > appreciated. > > Thanks! Ryan > > > > Servlet: > > public class SimpleServlet extends HttpServlet { protected void > doGet(HttpServletRequest req, HttpServletResponse resp) throws > ServletException, IOException { IOUtils.write("Hello There!", > resp.getOutputStream()); resp.setStatus(202); } } > > web.xml: > > <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> > > <servlet> <servlet-name>SimpleServlet</servlet-name> > <servlet-class>com.jamf.swa.SimpleServlet</servlet-class> > </servlet> > > <servlet-mapping> <servlet-name>SimpleServlet</servlet-name> > <url-pattern>*.swa</url-pattern> </servlet-mapping> > > <mime-mapping> <extension>swa</extension> > <mime-type>text/rtf;charset=UTF-8</mime-type> </mime-mapping> > > </web-app> > > cURL request: > > curl --trace-ascii - http://localhost:8080/testing.swa == Info: > Trying ::1... == Info: TCP_NODELAY set == Info: Connected to > localhost (::1) port 8080 (#0) => Send header, 89 bytes (0x59) > 0000: GET /testing.swa HTTP/1.1 001b: Host: localhost:8080 0031: > User-Agent: curl/7.51.0 004a: Accept: * /* 0057: <= Recv header, > 23 bytes (0x17) 0000: HTTP/1.1 202 Accepted <= Recv header, 27 > bytes (0x1b) 0000: Server: Apache-Coyote/1.1 <= Recv header, 20 > bytes (0x14) 0000: Content-Length: 12 <= Recv header, 37 bytes > (0x25) 0000: Date: Wed, 15 Feb 2017 22:37:17 GMT <= Recv header, 2 > bytes (0x2) 0000: <= Recv data, 12 bytes (0xc) 0000: Hello There! > Hello There!== Info: Curl_http_done: called premature == 0 == Info: > Connection #0 to host localhost left intact Yup: you are making a request to a custom servlet that doesn't do anything with the MIME mappings. You said you don't want to modify the source... what about *adding* to it? Would it be okay to write a Filter and add it to the configuration of the application? That is a very easy thing to do, and you can add whatever headers you want for whatever reason. - -chris -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBCAAGBQJYsGl1AAoJEBzwKT+lPKRYCkwP/i1lBjt3v6zsdYMWafdCNoTj cIlYc3P6AAafDED7/Sf/8H3RQ1uOrp9n0DuM6hnjrh55ptv/VoAGDY3836ONSQ8S ldWDJOipeTFW2byOeWc9fjT9+AJJ0B/3BidjUFgmljsyCw+f71ZYvHt2ECXNoXOO T1nQG/OqqTnRZ54UZ1/d/PyZJSbEw1YHmS3f5DFfhtDHjgOS2bBsuQvSvX2XCUjK lEcdCTbP1XaIU2jMIlRLF///i1Ytz2OsS12byt+tnotRC0MIVr1ST8Je6yvgaBLw JHnStDdSJW4yFiy9aW8L54qChmdr1KCybavsnEHJKKgc7R5n+2qY2wDm4RwXl8b3 Aqyc9A5ELGhL/xn+kf3w4sC41yEAUXitYJyNkg33o69XoV+nxLfmuWTEqANwh5K+ RRsDQXTnnNZx9fewHpg2+/OnWUkLxaCtqfInU907c7AyXnuJ1jhWD9tBMXFy1SBA jCQfj7U6hL/LsjQRPdpl0I0qpQ/KrxuCdBLCWwl28xwdXu21enlCV6ZvgHe3z6Vc HVTc3dB/QbFNHJ9Qm1tbemOPTfR8rr2rycu3dcEXNlmwAwZ3yPASQGPnILZnxDyD q1VmitMK3vfvoErXfMJ8yrPluQXRMus3f6Guu5k3gIYA/y9a+FUmUZ3pMPaTl69M wLc5oAFEfPZcqfIdZlRd =TfdZ -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org