// needed for this object reference
org.apache.cxf.binding.corba.wsdl.Object objType =
(org.apache.cxf.binding.corba.wsdl.Object)handler.getType();
QName bindingName = objType.getBinding();
if (bindingName != null) {
EprMetaData eprInfo = null;
if (INFER_FROM_TYPE_ID.equalsIgnoreCase(bindingName.getLocalPart())) {
String typeId = CorbaObjectReferenceHelper.extractTypeIdFromIOR(address);
if (!StringUtils.isEmpty(typeId)) {
eprInfo = getEprMetadataForTypeId(wsdlDef, typeId);
} else {
LOG.log(Level.SEVERE, "For binding with value \"" + INFER_FROM_TYPE_ID
+ "\" the type_id of the object reference IOR must be set to it's most"
+ " derived type. It is currently null indicating CORBA:Object."
+ " Address Url=" + address);
}
} else {
eprInfo = getEprMetadataForBindingName(wsdlDef, bindingName);
}
if (eprInfo.isValid()) {
LOG.log(Level.FINE, "Epr metadata " + eprInfo);
// Create the meta data producer and add its child producers.
String wsdlLoc = CorbaObjectReferenceHelper.getWSDLLocation(eprInfo.getCandidateWsdlDef());
CorbaServiceNameEventProducer nameProducer =
new CorbaServiceNameEventProducer(eprInfo.getServiceQName(), eprInfo.getPortName());
QName interfaceName = eprInfo.getBinding().getPortType().getQName();
CorbaInterfaceNameEventProducer interfaceProducer =
new CorbaInterfaceNameEventProducer(interfaceName);
CorbaMetaDataEventProducer metaProducer =
new CorbaMetaDataEventProducer(wsdlLoc, nameProducer, interfaceProducer);
objRefProducers.add(metaProducer);