import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.soap.Node;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPMessage;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.w3c.dom.NodeList;
public class ReceiverSoapMessage
{
private static Logger logger = Logger.getLogger(ReceiverSoapMessage.class);
private static SOAPBody body = null;
// private static SOAPHeader header = null;
private static SOAPEnvelope envelope = null;
private static SOAPElement endPointUrlResult = null;
private static SOAPElement requestHeader = null;
// private static SOAPElement ResultBody = null;
/**
* 定义接收SOAP Response Message Header
* @param respMsg 返回报文
* @return returnBool
*/
public static boolean buildSoapResponseMessage(SOAPMessage respMsg)
{
boolean returnBool = false;
try
{
logger.debug("build Soap Response Message begin.");
if (respMsg != null)
{
// 从返回报文中得到SOAP消息头
envelope = respMsg.getSOAPPart().getEnvelope();
// 从返回报文中得消息体
// header = envelope.getHeader();
body = envelope.getBody();
// 从消息体中得到父节点
endPointUrlResult = (SOAPElement) body
.getChildElements(
envelope
.createName("EndPointUrlResultMsg",
"esb",
"http://ngbss.huawei.com/esb/endpointurl/webservice"))
.next();
// 得到第一个子节点RequestHeader
requestHeader = (SOAPElement) endPointUrlResult
.getChildElements().next();
// 得到第二个子节点RequestBody
// ResultBody = (SOAPElement) EndPointUrlResult.getLastChild();
}
logger.debug("build Soap Response Message sucess.");
returnBool = true;
return returnBool;
}
catch (Exception e)
{
logger
.error("build Soap Response Message failed and The Message was:"
+ e.getMessage());
return returnBool;
}
}
/**
* 接收全查询的SOAP Response Message
* @return listUrlInfo
*/
public static List<EndPointUrlEntity> getqueryAllResponeMessage()
{
List<EndPointUrlEntity> listUrlInfo = new ArrayList<EndPointUrlEntity>();
String urlInfo = null;
try
{
// 得到String,并将其转成XML形式的String;
NodeList resultHeaderList = requestHeader.getChildNodes();
if (resultHeaderList.getLength() > 0)
{
for (int i = 0; i < resultHeaderList.getLength(); i++)
{
Node node = (Node) resultHeaderList.item(i);
if (node.getNodeName().contains("RetDesc"))
{
urlInfo = node.getTextContent();
}
}
listUrlInfo = readXMLMessage(urlInfo);
}
return listUrlInfo;
}
catch (Exception e)
{
listUrlInfo = null;
logger
.error("query All Respone Message failed and the Message was:"
+ e.getMessage());
return listUrlInfo;
}
}
Web Service 03
猜你喜欢
转载自xieguowei123485.iteye.com/blog/1511190
今日推荐
周排行