- else {
- ret_val = CosNaming::NamingContext::_narrow(service_obj);
- if (CORBA::is_nil(ret_val) ) {
- cerr << "Failed to get existing context from name service for " << service_name_param << ", narrowing failed." << endl;
+ catch(CosNaming::NamingContext::NotFound& ex) {
+ log_error("Failed to get context from name service for %s. Context does not yet exist, but will try to create.\n", service_name_param);
+ }
+ try {
+ log_debug("get_service_naming_context() 5\n");
+ if (CORBA::is_nil(service_obj)) {
+ // not found, try to bind the new context to name service
+ log_debug("get_service_naming_context() 6\n");
+ ret_val = ns_context->bind_new_context(context_data);
+ log_debug("get_service_naming_context() 7\n");
+ if (CORBA::is_nil(ret_val) ) {
+ log_error("Failed to create new context to name service for %s.\n", service_name_param);
+ }
+ }
+ else {
+ ret_val = CosNaming::NamingContext::_narrow(service_obj);
+ if (CORBA::is_nil(ret_val) ) {
+ log_error("Failed to get existing context from name service for %s, narrowing failed.\n", service_name_param);
+ }