You published as “response” returned HTTP content, which looks correct.

HTTP server also sends so-called “HTTP Header”, which should have “Content-type: application/pdf” entry.

Your JSP code also seems to be ok. So first I would suspect your web application has a config mapping “JSP -> plain/text”, and the configuration overrides “Content-type: application/pdf” set by PD4ML taglib.