客户端,创建handleMessage:
@Override
public boolean handleMessage(SOAPMessageContext context) {
Boolean flag = (Boolean) context
.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (flag) {
try {
SOAPMessage message = context.getMessage();
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
SOAPHeader header = envelope.getHeader();
if (header == null)
header = envelope.addHeader();
QName name = new QName("http://soap.lichen.cn/", "licenseInfo");
header.addHeaderElement(name).setValue("client message .......");
message.writeTo(System.out);
} catch (SOAPException | IOException e) {
e.printStackTrace();
}
}
return true;
}
服务端,接受handle的方法:
@Override
public boolean handleMessage(SOAPMessageContext context) {
Boolean flag = (Boolean) context
.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (!flag) {
SOAPMessage message = context.getMessage();
try {
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
SOAPHeader header = envelope.getHeader();
if (header != null) {
NodeList list = header.getElementsByTagName("licenseInfo");
System.out.println(list.item(0).getTextContent());
}
} catch (SOAPException e) {
e.printStackTrace();
}
}
return true;
}
结果,客户端控制台:
服务端: