Solr is deployed as a simple WAR (Web application archive) file that packages up the servlet, JavaScript files, code libraries, and all of the other bits that are required to run Solr. Therefore, Solr can be deployed into any Java EE Servlet container that meets the Servlet 2.4 specification, such as Apache Tomcat, JBoss, and GlassFish, as well as Jetty, which by default ships with Solr.
The key thing to resolve when working with Solr and the various Servlet containers is that technically you are supposed to compile a single WAR file and deploy that into the Servlet container. It is the container's responsibility to figure out how to unpack the components that make up the WAR file and deploy them properly. For example, with Jetty, you place the WAR file in /webapps
, but when you start Jetty, it unpacks the WAR file in /work
as a subdirectory, with a somewhat cryptic name that looks something like Jetty_0_0_0_0_8983_solr...