in modules/kernel/src/org/apache/axis2/description/AxisService.java [1560:1696]
private void setPortAddress(Definition definition, String requestIP)
throws AxisFault {
Iterator serviceItr = definition.getServices().values().iterator();
while (serviceItr.hasNext()) {
Service serviceElement = (Service) serviceItr.next();
Iterator portItr = serviceElement.getPorts().values().iterator();
while (portItr.hasNext()) {
Port port = (Port) portItr.next();
AxisEndpoint endpoint = getAxisEndpoint(port.getName());
List list = port.getExtensibilityElements();
for (int i = 0; i < list.size(); i++) {
Object extensibilityEle = list.get(i);
if (extensibilityEle instanceof SOAPAddress) {
SOAPAddress soapAddress = (SOAPAddress) extensibilityEle;
String existingAddress = soapAddress.getLocationURI();
if (existingAddress == null
|| existingAddress
.equals("REPLACE_WITH_ACTUAL_URL")) {
if (endpoint != null) {
((SOAPAddress) extensibilityEle)
.setLocationURI(endpoint
.calculateEndpointURL(requestIP));
} else {
((SOAPAddress) extensibilityEle)
.setLocationURI(getEPRs()[0]);
}
} else {
if (requestIP == null) {
if (endpoint != null) {
((SOAPAddress) extensibilityEle)
.setLocationURI(endpoint
.calculateEndpointURL());
} else {
((SOAPAddress) extensibilityEle)
.setLocationURI(getLocationURI(
getEPRs(), existingAddress));
}
} else {
if (endpoint != null) {
((SOAPAddress) extensibilityEle)
.setLocationURI(endpoint
.calculateEndpointURL(requestIP));
} else {
((SOAPAddress) extensibilityEle)
.setLocationURI(getLocationURI(
calculateEPRs(requestIP),
existingAddress));
}
}
}
} else if (extensibilityEle instanceof SOAP12Address) {
SOAP12Address soapAddress = (SOAP12Address) extensibilityEle;
String exsistingAddress = soapAddress.getLocationURI();
if (requestIP == null) {
if (endpoint != null) {
((SOAP12Address) extensibilityEle)
.setLocationURI(endpoint
.calculateEndpointURL());
} else {
((SOAP12Address) extensibilityEle)
.setLocationURI(getLocationURI(
getEPRs(), exsistingAddress));
}
} else {
if (endpoint != null) {
((SOAP12Address) extensibilityEle)
.setLocationURI(endpoint
.calculateEndpointURL(requestIP));
} else {
((SOAP12Address) extensibilityEle)
.setLocationURI(getLocationURI(
calculateEPRs(requestIP),
exsistingAddress));
}
}
} else if (extensibilityEle instanceof HTTPAddress) {
HTTPAddress httpAddress = (HTTPAddress) extensibilityEle;
String exsistingAddress = httpAddress.getLocationURI();
if (requestIP == null) {
if (endpoint != null) {
((HTTPAddress) extensibilityEle)
.setLocationURI(endpoint
.calculateEndpointURL());
} else {
((HTTPAddress) extensibilityEle)
.setLocationURI(getLocationURI(
getEPRs(), exsistingAddress));
}
} else {
if (endpoint != null) {
((HTTPAddress) extensibilityEle)
.setLocationURI(endpoint
.calculateEndpointURL(requestIP));
} else {
((HTTPAddress) extensibilityEle)
.setLocationURI(getLocationURI(
calculateEPRs(requestIP),
exsistingAddress));
}
}
} else if (extensibilityEle instanceof UnknownExtensibilityElement){
UnknownExtensibilityElement unknownExtensibilityElement = (UnknownExtensibilityElement) extensibilityEle;
Element element = unknownExtensibilityElement.getElement();
if (AddressingConstants.ENDPOINT_REFERENCE.equals(element.getLocalName())){
NodeList nodeList = element.getChildNodes();
Node node = null;
Element currentElement = null;
for (int j = 0; j < nodeList.getLength(); j++) {
node = nodeList.item(j);
if (node instanceof Element){
currentElement = (Element) node;
if (AddressingConstants.EPR_ADDRESS.equals(currentElement.getLocalName())) {
String exsistingAddress = currentElement.getTextContent();
if (requestIP == null) {
if (endpoint != null) {
currentElement.setTextContent(endpoint.calculateEndpointURL());
} else {
currentElement.setTextContent(getLocationURI(getEPRs(), exsistingAddress));
}
} else {
if (endpoint != null) {
currentElement.setTextContent(endpoint.calculateEndpointURL(requestIP));
} else {
currentElement.setTextContent(getLocationURI(calculateEPRs(requestIP),exsistingAddress));
}
}
}
}
}
}
}
}
}
}
}