@Override
  public Object getAttribute(final String resourceName, final String attributeName) {
    final URI link = HttpRequester.createURI(baseUrl, "/mbean/attribute", "resourceName",
        resourceName, "attributeName", attributeName);

    try {
      return IOUtils.deserializeObject(httpRequester.get(link, byte[].class));
    } catch (IOException e) {
      throw new MBeanAccessException(String.format(
          "De-serializing the result of accessing attribute (%1$s) on MBean (%2$s) failed!",
          resourceName, attributeName), e);
    } catch (ClassNotFoundException e) {
      throw new MBeanAccessException(String.format(
          "The Class type of the result when accessing attribute (%1$s) on MBean (%2$s) was not found!",
          resourceName, attributeName), e);
    }
  }
Read the attribute identified by name from a remote resource identified by name. The intent of
this method is to return the value of an attribute on an MBean located in the remote
MBeanServer.

@param resourceName name/url of the remote resource from which to fetch the attribute value.
@param attributeName name of the attribute who's value will be fetched.
@return the value of the named attribute for the named resource (typically an MBean).
@throws MBeanAccessException if an MBean access error occurs.
geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java