⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soapconnector.java

📁 jmx codeJava源码
💻 JAVA
字号:

package book.jmx.examples;

import java.rmi.RemoteException;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.management.*;
import javax.management.modelmbean.*;

import electric.server.http.*;
import electric.registry.*;

public class SOAPConnector 
    implements MBeanServerInvoker, SOAPConnectorConstants {

  private int port = 8085;
  private String path = "jmx";
  private String name = "urn:soapconnector";
  
  private MBeanServer server = null;  
  
  public SOAPConnector() {    
    System.setProperty("electric.xml.io.serialize", "yes");
  }

  public void start(String agentID) 
      throws IOException, RegistryException {
    
    HTTP.startup("http://localhost:" + port + "/" + path);
    Registry.publish(name, this, MBeanServerInvoker.class);     
    
    // find the mbean server reference
    server = (MBeanServer)MBeanServerFactory
        .findMBeanServer(agentID).get(0);
  }
  
  public int getPort() {
    return port;
  }
  
  public void setPort(int port) {
    this.port = port;
  }
  
  public String getName() {
    return name;
  }
  
  public void setName(String name) {
    this.name = name;
  }
  
  public String getPath() {
    return path;
  }
  
  public void setPath() {
    this.path = path;
  }
  
  public Object invoke(MethodInvocation mi) throws Exception {
      
      mi.setMBeanServer(server);
      mi.invoke();

      if (mi.getStatus() == MethodInvocation.ERROR) {
        Object val = mi.getReturnValue();
        
        if (val instanceof Exception)
          throw (Exception)val;
        else throw new RemoteException(
            "Error at the server.", (Throwable)val
        );
      }
        
      return mi.getReturnValue();
  }
  
  
  /* Export Manager */
  public Properties getExportProperties() throws UnknownHostException {
    Properties props = new Properties();
    props.put(HOST, InetAddress.getLocalHost().getHostAddress());
    props.put(PORT, "" + getPort());
    props.put(PATH, path);
    props.put(NAME, getName() + ".wsdl");
    return props;  
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -