/* * Copyright 2001-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.axis.transport.http; import org.apache.axis.components.logger.LogFactory; import org.apache.axis.utils.Messages; import org.apache.axis.utils.Options; import org.apache.commons.logging.Log; import org.mortbay.http.HttpContext; import org.mortbay.http.HttpServer; import org.mortbay.http.SocketListener; import org.mortbay.http.handler.ResourceHandler; import org.mortbay.jetty.servlet.ServletHandler; import java.net.MalformedURLException; public class JettyAxisServer { protected static Log log = LogFactory.getLog(JettyAxisServer.class.getName()); /** * Jetty HTTP Server * */ HttpServer server = new HttpServer(); /** * Socket Listener * */ SocketListener listener = new SocketListener(); /** * HTTP Context */ HttpContext context = new HttpContext(); public JettyAxisServer() { // Create a context context.setContextPath("/axis/*"); server.addContext(context); // Create a servlet container ServletHandler servlets = new ServletHandler(); context.addHandler(servlets); // Map a servlet onto the container servlets.addServlet("AdminServlet", "/servlet/AdminServlet", "org.apache.axis.transport.http.AdminServlet"); servlets.addServlet("AxisServlet", "/servlet/AxisServlet", "org.apache.axis.transport.http.AxisServlet"); servlets.addServlet("AxisServlet", "/services/*", "org.apache.axis.transport.http.AxisServlet"); servlets.addServlet("AxisServlet", "*.jws", "org.apache.axis.transport.http.AxisServlet"); context.addHandler(new ResourceHandler()); } /** * Set the port * * @param port */ public void setPort(int port) { listener.setPort(port); server.addListener(listener); } /** * Set the resource base * * @param dir */ public void setResourceBase(String dir) { context.setResourceBase(dir); } /** * Start the server * * @throws Exception */ public void start() throws Exception { server.start(); log.info( Messages.getMessage("start00", "JettyAxisServer", new Integer(listener.getServerSocket().getLocalPort()).toString())); } public static void main(String[] args) { Options opts = null; try { opts = new Options(args); } catch (MalformedURLException e) { log.error(Messages.getMessage("malformedURLException00"), e); return; } JettyAxisServer server = new JettyAxisServer(); server.setPort(opts.getPort()); String dir = opts.isValueSet('d'); if (dir == null) { // Serve static content from the context dir = System.getProperty("jetty.home", ".") + "/webapps/axis/"; } server.setResourceBase(dir); // Start the http server try { server.start(); } catch (Exception e) { log.error(Messages.getMessage("exception00"), e); } } }