小编Dev*_*esh的帖子

如何通过java代码设置JMX远程端口系统环境参数进行远程监控?

我有一个程序,它需要动态(即在运行时)打开一个可用的套接字并在其上启动一个JMX代理.此JMX参数在Java代码中设置,而不是通过命令行设置.这很好用.此后,需要远程通过Java Visual VM监视(即发出JMX命令等)

该程序中的RMI服务器代理处于以下所述的开箱即用管理行为:http: //download.oracle.com/javase/6/docs/technotes/guides/management/agent.html

我的问题可以概括为:如何通过Java代码将这些命令行属性设置为系统级别,以便可以使用远程分析?

-Dcom.sun.management.jmxremote.port=1234
Run Code Online (Sandbox Code Playgroud)

如果通过命令行设置"jmxremote.port"和其他参数,则远程监视工作正常.我试图通过Java而不是通过命令行找到一种方法.

程序无法通过命令行指定端口,因为必须在运行时计算出新的可用端口.

该过程需要远程监控,并且在本地工作正常.如果未在命令行中指定以下参数,则Java Visual VM不会连接到该进程.

-Dcom.sun.management.jmxremote.port=1234
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=10.0.0.128
Run Code Online (Sandbox Code Playgroud)

我试过了.

System.setProperty("com.sun.management.jmxremote.port",Integer.toString(port));
Run Code Online (Sandbox Code Playgroud)

这是在启动JMXConnectorServer之前在程序中完成的第一件事.不幸的是,它没有被认可.只有运行时属性(即通过命令行指定由Java Visual VM识别JMX连接).

还遇到了可以从java集合类中提取属性的方法但无法到达如何跟踪属性"com.sun.management.jmxremote.port ="

public static void setEnv(Map<String, String> newenv) throws Exception {
  Class[] classes = Collections.class.getDeclaredClasses();
  Map<String, String> env = System.getenv();

  for(Class cl : classes) {

    if("java.util.Collections$UnmodifiableMap".equals(cl.getName())) {

      Field field = cl.getDeclaredField("m");
      field.setAccessible(true);

      Object obj = field.get(env);
      Map<String, String> map = (Map<String, String>) obj;

      //map.clear();
      map.putAll(newenv);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

java jmx rmi

9
推荐指数
2
解决办法
2万
查看次数

如何使用python csv模块拆分双管分隔数据

我有数据看起来像:

"1234"||"abcd"||"a1s1"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Python的csv阅读器和编写器进行读写.由于csv模块的分隔符仅限于单个字符,是否有任何方法可以干净地检索数据?我无法删除空列,因为它是一个庞大的数据集,需要以时间限制的方式处理.任何想法都会有所帮助.

python csv delimiter

7
推荐指数
1
解决办法
8153
查看次数

Selenium-Phantomjs下载csv

我正在尝试使用PhantomJS从对话框下载(保存到磁盘)CSV文件.使用firefox配置文件,通过设置浏览器配置文件属性,这将非常简单.有任何建议如何在phantomjs中下载excel文件?

这是使用firefox驱动程序完成的方法:

profile = webdriver.firefox.firefox_profile.FirefoxProfile()
profile.set_preference("browser.download.folderList",2)
profile.set_preference("browser.download.dir",self.opts['output_dir'])
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', ('application/octet-stream,application/msexcel'))
Run Code Online (Sandbox Code Playgroud)

我正在使用Phantomjs驱动程序:

webdriver.PhantomJS(service_args=['--ignore-ssl-errors=true','--local-storage-path=/tmp'])
Run Code Online (Sandbox Code Playgroud)

并寻找一种方法来设置属性,可以覆盖保存到磁盘并设置数据的MIME类型.目前没有设置属性,PhantomJS驱动程序,不下载该文件.

我已阅读有关避免对话框等的链接,但在这种情况下,需要它.

python export-to-csv phantomjs selenium-firefoxdriver selenium-webdriver

6
推荐指数
1
解决办法
2993
查看次数