首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

两个java web服务间SoapMessage对象的传送

2012-10-27 
两个java web服务间SoapMessage对象的传递客户端代码:?try{// 创建连接对象并呼叫APSOAPConnection conn

两个java web服务间SoapMessage对象的传递

客户端代码:

?

try            {                // 创建连接对象并呼叫AP                SOAPConnection conn = SOAPConnectionFactory.newInstance().createConnection();                SOAPMessage resMsg = conn.call(reqMsg, apUrl);                                // 获取AP的响应消息                String msg = "";                if (null == resMsg)                {                    msg = getResponse(servletContext, currOperaId, 0);                }                else                {                    // 接收对方返回的SOAPMessage对象并转成字符串                    Document doc = resMsg.getSOAPPart().getEnvelope().getOwnerDocument();                    StringWriter output = new StringWriter();                    TransformerFactory.newInstance()                        .newTransformer()                        .transform(new DOMSource(doc), new StreamResult(output));                    msg = output.toString();                }                                // 移除servlet上下文中存储的消息                servletContext.removeAttribute(id);                                return msg;            }            catch (Exception ex)            {                logger.error(Global.LOG_EXCEPTION_NAME, ex);                return "";            }

?

服务器端代码:

/**     * <创建UploadResponse事件的字符串>     * <功能详细描述>     * @param bool 1成功0失败     * @return     * @see [类、类#方法、类#成员]     */    public static String createUploadResponse(int bool)    {        StringBuffer sb = new StringBuffer();        sb.append("<?xml version="1.0" encoding="UTF-8"?>");        sb.append("<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cwmp="urn:dslforum-org:cwmp-1-1">");        sb.append("<SOAP-ENV:Header><cwmp:ID>1484</cwmp:ID></SOAP-ENV:Header>");        sb.append("<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">");                if (1 == bool)        {            sb.append("<cwmp:UploadResponse><Status>0</Status><StartTime>");            sb.append(Global.getCurrentTime());            sb.append("</StartTime><CompleteTime>");            sb.append(Global.getCurrentTime());            sb.append("</CompleteTime>");            sb.append("</cwmp:UploadResponse>");        }        else        {            sb.append("<SOAP-ENV:Fault><faultcode>Client</faultcode><faultstring>CWMP fault</faultstring>");            sb.append("<detail><cwmp:Fault><FaultCode>9011</FaultCode><FaultString>Upload failure</FaultString></cwmp:Fault>");            sb.append("</detail></SOAP-ENV:Fault>");        }        sb.append("</SOAP-ENV:Body></SOAP-ENV:Envelope>");        return sb.toString();    }

?

/**     * <把soap字符串格式化为SOAPMessage>     * <功能详细描述>     * @param soapString     * @return     * @see [类、类#方法、类#成员]     */    public static SOAPMessage formartSoapString(String soapString)    {        MessageFactory msgFactory;        try        {            msgFactory = MessageFactory.newInstance();            SOAPMessage reqMsg =                msgFactory.createMessage(new MimeHeaders(),                    new ByteArrayInputStream(soapString.getBytes(Charset.forName("UTF-8"))));            reqMsg.saveChanges();            return reqMsg;        }        catch (Exception e)        {            logger.error(EXCEPTION_NAME, e);            return null;        }    }

??

?

热点排行