LOGGER.log(Level.WARNING,
addressingVersion.getInvalidMapText()+", Problem header:" + e.getProblemHeader()+ ", Reason: "+ e.getSubsubcode(),e);
SOAPFault soapFault = helper.createInvalidAddressingHeaderFault(e, addressingVersion);
// WS-A fault processing for one-way methods
if ((wsdlPort!=null) && request.getMessage().isOneWay(wsdlPort)) {
Packet response = request.createServerResponse(null, wsdlPort, null, binding);
return doReturnWith(response);
}
Message m = Messages.create(soapFault);
if (soapVersion == SOAPVersion.SOAP_11) {
FaultDetailHeader s11FaultDetailHeader = new FaultDetailHeader(addressingVersion, addressingVersion.problemHeaderQNameTag.getLocalPart(), e.getProblemHeader());
m.getHeaders().add(s11FaultDetailHeader);
}
Packet response = request.createServerResponse(m, wsdlPort, null, binding);
return doReturnWith(response);
}
// defaulting
if (replyTo == null) replyTo = addressingVersion.anonymousEpr;
if (faultTo == null) faultTo = replyTo;
wbo = getWSDLBoundOperation(request);
isAnonymousRequired = isAnonymousRequired(wbo);
Packet p = validateInboundHeaders(request);
// if one-way message and WS-A header processing fault has occurred,
// then do no further processing
if (p.getMessage() == null)
// request message is invalid, exception is logged by now and response is sent back with null message
return doReturnWith(p);
// if we find an error in addressing header, just turn around the direction here
if (p.getMessage().isFault()) {
// close the transportBackChannel if we know that
// we'll never use them
if (!(isAnonymousRequired) &&
!faultTo.isAnonymous() && request.transportBackChannel != null)
request.transportBackChannel.close();