xfireservlet.java

来自「Xfire文件 用于开发web service 的一个开源工具 很好用的」· Java 代码 · 共 145 行

JAVA
145
字号
package org.codehaus.xfire.transport.http;import java.io.File;import java.io.IOException;import java.util.Iterator;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.codehaus.xfire.XFire;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.transport.Transport;/** * A servlet which processes incoming XFire requests. * It delegates to the XFireController to process the request. * * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse </a> * @since Feb 13, 2004 */public class XFireServlet    extends HttpServlet{    protected XFire xfire;    protected XFireServletController controller;    private File webInfPath;    private final static Log logger = LogFactory.getLog(XFireServlet.class);    public final static String XFIRE_INSTANCE = "xfire.instance";    public void init()        throws ServletException    {        try        {            super.init();            xfire = createXFire();            controller = createController();        }        catch (Throwable tx)        {            // log.er            logger.error("Error initializing XFireServlet.", tx);            throw new ServletException("Error initializing XFireServlet.", tx);        }    }    /**     * Get the xfire instance. if it hasn't been created, then {@link #createXFire()} will be called.     */    public XFire getXFire() throws ServletException    {        if (xfire == null) xfire = createXFire();        return xfire;    }    /**     * Get the xfire controller. if it hasn't been created, then {@link #createController()} will be called.     */    public XFireServletController getController() throws ServletException    {        if(controller == null) controller = createController();        return controller;    }    public XFire createXFire()        throws ServletException    {        try        {            XFire xfire = (XFire) getServletContext().getAttribute(XFIRE_INSTANCE);            if (xfire == null)            {                XFireFactory factory = XFireFactory.newInstance();                xfire = factory.getXFire();            }            return xfire;        }        catch (Exception e)        {            throw new ServletException("Couldn't start XFire.", e);        }    }    public XFireServletController createController()        throws ServletException    {        return new XFireServletController(xfire, getServletContext());    }    /**     * Delegates to {@link XFireServletController#doService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)}.     */    protected void doGet(HttpServletRequest request,                         HttpServletResponse response)        throws ServletException, IOException    {        controller.doService(request, response);    }    /**     * Delegates to {@link XFireServletController#doService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)}.     */    protected void doPost(HttpServletRequest req, HttpServletResponse res)        throws ServletException, IOException    {        controller.doService(req, res);    }        public File getWebappBase()    {        if (webInfPath == null)        {            ServletContext context = getServletConfig().getServletContext();            String realPath = context.getRealPath("/WEB-INF");            if (realPath == null) realPath = "";                        webInfPath = new File(realPath);        }        return webInfPath;    }    public void destroy()    {    	logger.debug("Destroying Servlet");        //Ensure all transports are closed        for (Iterator iterator = xfire.getTransportManager().getTransports().iterator(); iterator.hasNext();)        {            Transport transport = (Transport) iterator.next();            transport.dispose();        }        super.destroy();    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?