⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 axisservicecomponent.java

📁 提供ESB 应用mule源代码 提供ESB 应用mule源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        Map.Entry entry;        for (Iterator iterator = params.entrySet().iterator(); iterator.hasNext();)        {            entry = (Map.Entry)iterator.next();            args.append("<").append(entry.getKey()).append(">");            args.append(entry.getValue());            args.append("</").append(entry.getKey()).append(">");        }        if (method == null)        {            response.setProperty(HttpConstants.HEADER_CONTENT_TYPE, "text/html");            response.setProperty(HttpConnector.HTTP_STATUS_PROPERTY, "400");            response.write("<h2>" + Messages.getMessage("error00") + ":  "                            + Messages.getMessage("invokeGet00") + "</h2>");            response.write("<p>" + Messages.getMessage("noMethod01") + "</p>");        }        else        {            invokeEndpointFromGet(msgContext, response, method, args.toString());        }    }    protected void processWsdlRequest(MessageContext msgContext, WriterMessageAdapter response)        throws AxisFault    {        AxisEngine engine = getAxis();        try        {            engine.generateWSDL(msgContext);            Document doc = (Document)msgContext.getProperty("WSDL");            if (doc != null)            {                response.setProperty(HttpConstants.HEADER_CONTENT_TYPE, "text/xml");                XMLUtils.DocumentToWriter(doc, response.getWriter());            }            else            {                if (logger.isDebugEnabled())                {                    logger.debug("processWsdlRequest: failed to create WSDL");                }                reportNoWSDL(response, "noWSDL02", null);            }        }        catch (AxisFault axisFault)        {            if (axisFault.getFaultCode().equals(Constants.QNAME_NO_SERVICE_FAULT_CODE))            {                processAxisFault(axisFault);                response.setProperty(HttpConnector.HTTP_STATUS_PROPERTY, "404");                reportNoWSDL(response, "noWSDL01", axisFault);            }            else            {                throw axisFault;            }        }    }    protected void invokeEndpointFromGet(MessageContext msgContext,                                         WriterMessageAdapter response,                                         String method,                                         String args) throws AxisFault    {        String body = "<" + method + ">" + args + "</" + method + ">";        String msgtxt = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP-ENV:Body>"                        + body + "</SOAP-ENV:Body>" + "</SOAP-ENV:Envelope>";        Message responseMsg = null;        try        {            ByteArrayInputStream istream = new ByteArrayInputStream(msgtxt.getBytes("ISO-8859-1"));            AxisEngine engine = getAxis();            Message msg = new Message(istream, false);            msgContext.setRequestMessage(msg);            AxisServiceProxy.setProperties(RequestContext.getEvent().getEndpoint().getProperties());            engine.invoke(msgContext);            responseMsg = msgContext.getResponseMessage();            response.setProperty(HTTPConstants.HEADER_CACHE_CONTROL, "no-cache");            response.setProperty(HTTPConstants.HEADER_PRAGMA, "no-cache");            if (responseMsg == null)            {                throw new Exception(Messages.getMessage("noResponse01"));            }        }        catch (AxisFault fault)        {            processAxisFault(fault);            configureResponseFromAxisFault(response, fault);            responseMsg = new Message(fault);        }        catch (Exception e)        {            response.setProperty(HttpConnector.HTTP_STATUS_PROPERTY, "500");            responseMsg = convertExceptionToAxisFault(e, responseMsg);        }        response.setProperty(HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");        response.write(responseMsg.getSOAPPartAsString());    }    protected void reportServiceInfo(WriterMessageAdapter response, SOAPService service, String serviceName)    {        response.setProperty(HttpConstants.HEADER_CONTENT_TYPE, "text/html");        response.write("<h1>" + service.getName() + "</h1>");        response.write("<p>" + Messages.getMessage("axisService00") + "</p>");        response.write("<i>" + Messages.getMessage("perhaps00") + "</i>");    }    protected void processListRequest(WriterMessageAdapter response) throws AxisFault    {        AxisEngine engine = getAxis();        response.setProperty(HTTPConstants.HEADER_CONTENT_TYPE, "text/html");        if (enableList)        {            Document doc = Admin.listConfig(engine);            if (doc != null)            {                XMLUtils.DocumentToWriter(doc, response.getWriter());            }            else            {                response.setProperty(HttpConnector.HTTP_STATUS_PROPERTY, "404");                response.write("<h2>" + Messages.getMessage("error00") + "</h2>");                response.write("<p>" + Messages.getMessage("noDeploy00") + "</p>");            }        }        else        {            response.setProperty(HttpConnector.HTTP_STATUS_PROPERTY, "403");            response.write("<h2>" + Messages.getMessage("error00") + "</h2>");            response.write("<p><i>?list</i> " + Messages.getMessage("disabled00") + "</p>");        }    }    private void reportNoWSDL(WriterMessageAdapter response, String moreDetailCode, AxisFault axisFault)    {        response.setProperty(HttpConnector.HTTP_STATUS_PROPERTY, "404");        response.setProperty(HTTPConstants.HEADER_CONTENT_TYPE, "text/html");        response.write("<h2>" + Messages.getMessage("error00") + "</h2>");        response.write("<p>" + Messages.getMessage("noWSDL00") + "</p>");        if (moreDetailCode != null)        {            response.write("<p>" + Messages.getMessage(moreDetailCode) + "</p>");        }    }    protected void reportAvailableServices(MuleEventContext context, WriterMessageAdapter response)        throws ConfigurationException, AxisFault    {        AxisEngine engine = getAxis();        response.setProperty(HttpConstants.HEADER_CONTENT_TYPE, "text/html");        response.write("<h2>And now... Some Services</h2>");        String version = MuleManifest.getProductVersion();        if (version == null)        {            version = "Version Not Set";        }        response.write("<h5>(Mule - " + version + ")</h5>");        Iterator i;        try        {            response                .write("<table width=\"400\"><tr><th>Mule Component Services</th><th>Axis Services</th></tr><tr><td width=\"200\" valign=\"top\">");            i = engine.getConfig().getDeployedServices();            listServices(i, response);            response.write("</td><td width=\"200\" valign=\"top\">");            i = ((MuleConfigProvider)engine.getConfig()).getAxisDeployedServices();            listServices(i, response);            response.write("</td></tr></table>");        }        catch (ConfigurationException configException)        {            if (configException.getContainedException() instanceof AxisFault)            {                throw (AxisFault)configException.getContainedException();            }            else            {                throw configException;            }        }    }    private void listServices(Iterator i, WriterMessageAdapter response)    {        response.write("<ul>");        while (i.hasNext())        {            ServiceDesc sd = (ServiceDesc)i.next();            StringBuffer sb = new StringBuffer(512);            sb.append("<li>");            String name = sd.getName();            sb.append(name);            sb.append(" <a href=\"");            if (sd.getEndpointURL() != null)            {                sb.append(sd.getEndpointURL());                if (!sd.getEndpointURL().endsWith("/"))                {                    sb.append("/");                }            }            sb.append(name);            sb.append("?wsdl\"><i>(wsdl)</i></a></li>");            response.write(sb.toString());            if (sd.getDocumentation() != null)            {                response.write("<ul><h6>" + sd.getDocumentation() + "</h6></ul>");            }            ArrayList operations = sd.getOperations();            if (!operations.isEmpty())            {                response.write("<ul>");                OperationDesc desc;                for (Iterator it = operations.iterator(); it.hasNext();)                {                    desc = (OperationDesc)it.next();                    response.write("<li>" + desc.getName());                }                response.write("</ul>");            }        }        response.write("</ul>");    }    protected void reportCantGetAxisService(MuleEventContext context, WriterMessageAdapter response)    {        response.setProperty(HttpConnector.HTTP_STATUS_PROPERTY, "404");        response.setProperty(HttpConstants.HEADER_CONTENT_TYPE, "text/html");        response.write("<h2>" + Messages.getMessage("error00") + "</h2>");        response.write("<p>" + Messages.getMessage("noService06") + "</p>");    }    protected void doPost(MuleEventContext context, WriterMessageAdapter response)        throws Exception    {        String soapAction;        Message responseMsg;        AxisEngine engine = getAxis();        if (engine == null)        {            throw new MessagingException(CoreMessages.objectIsNull("Axis Engine"), context.getMessage());        }        MessageContext msgContext = new MessageContext(engine);        String contentType;        try        {            EndpointURI endpointUri = getEndpoint(context);            populateMessageContext(msgContext, context, endpointUri);            if (securityProvider != null)            {                if (logger.isDebugEnabled())                {                    logger.debug("securityProvider:" + securityProvider);                }                msgContext.setProperty("securityProvider", securityProvider);            }            Object request = context.transformMessage();            if (request instanceof File)            {                request = new FileInputStream((File)request);            }            else if (request instanceof byte[])            {                request = new ByteArrayInputStream((byte[])request);            }            Message requestMsg = new Message(request, false, context.getMessage().getStringProperty(                HTTPConstants.HEADER_CONTENT_TYPE, null), context.getMessage().getStringProperty(                HTTPConstants.HEADER_CONTENT_LOCATION, null));            if (logger.isDebugEnabled())            {                logger.debug("Request Message:" + requestMsg);            }            msgContext.setRequestMessage(requestMsg);

⌨️ 快捷键说明

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