view content/Java/jetty-as-proxy.md @ 112:cf31bf5fce72 default tip

Author of the blog post as mail header for efficient spam filtering
author Dirk Olmes <dirk.olmes@codedo.de>
date Tue, 06 Sep 2022 07:04:11 +0200
parents a8c68c6bbf9c
children
line wrap: on
line source

Title: Proxying requests with Jetty
Date: 2014-01-24
Tags: Jetty
Lang: en

At work we develop a web based software for the automotive industry. On the server side we embed Jetty as HTTP server and Servlet engine. It's easy to configure in code and performs very well.

Recently, we had to integrate a third party solution which comes as a virtual machine. This solution consists of some JavaScript APIs that need to talk to the VM. This setup gets you into problems with the [same origin policy](http://en.wikipedia.org/wiki/Same-origin_policy) quickly.

For the deployment setup we mess around with [Apache](http://httpd.apache.org)'s [mod_proxy](http://httpd.apache.org/docs/2.2/mod/mod_proxy.html). This works but is not really manageable for our development machines.

For development I wrote a couple of simple servlets that accept the request, use the JDK's [HttpURLConnection](http://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html) to retrieve the content from the VM and pass the resuld back. While this works it was really ugly code.

A bit of googling came up with Jetty's [ProxyServlet](http://www.eclipse.org/jetty/documentation/current/proxy-servlet.html) which looked promising. The real time saver was [Alan Hohn's blog post](http://blog.anvard.org/articles/2013/10/06/jetty-proxy-servlet.html) about how to use the proxy servlet. It allowed me to throw away all of our custom servlets and replace them with a single three-liner. Thanks, man!