public static URL getServerURL(IServer server) throws Exception {
   if (server != null) {
     IServerManager esbServerManager = ServerController.getInstance().getServerManager();
     HashMap<String, Object> operationParameters = new HashMap<String, Object>();
     operationParameters.put(
         ICarbonOperationManager.PARAMETER_TYPE, ICarbonOperationManager.OPERATION_SERVER_URL);
     Object serverURL = esbServerManager.executeOperationOnServer(server, operationParameters);
     if (serverURL instanceof URL) {
       String serverId = server.getServerType().getId();
       URL urlWithContextRoot = (URL) serverURL;
       if (!CARBON_SERVER_TYPE_REMOTE.equals(serverId)) {
         urlWithContextRoot =
             new URL(urlWithContextRoot, CarbonServerUtils.getWebContextRoot(server));
       }
       return urlWithContextRoot;
     }
   }
   return null;
 }