- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试用简单的方面来做一个简单的项目(hello world)。我使用 Maven 来构建这个项目,LTW 用于方面,logback 用于日志。当我使用时,方面是编织的:
"C:\Program Files\Java\jdk1.6.0_22\bin\java"
-javaagent:.\libs\aspectjweaver-1.7.3.jar
-cp ".\libs\ProtoApp-v0.0.1-SNAPSHOT.jar;.\libs\*"
-Xms64m -Xmx512m -XX:MaxPermSize=128m
-Daj.weaving.verbose=true
-Dorg.aspectj.weaver.showWeaveInfo=true
-Dlogback.configurationFile=file:.\logback.xml
org.iiter.continuum.protos.simple.App
但是当我为 JMX 添加参数时,方面不再编织:
"C:\Program Files\Java\jdk1.6.0_22\bin\java"
-javaagent:.\libs\aspectjweaver-1.7.3.jar
-cp ".\libs\ProtoApp-v0.0.1-SNAPSHOT.jar;.\libs\*"
-Xms64m -Xmx512m -XX:MaxPermSize=128m
-Daj.weaving.verbose=true
-Dorg.aspectj.weaver.showWeaveInfo=true
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7777
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dlogback.configurationFile=file:.\logback.xml
org.iiter.continuum.protos.simple.App
我不知道发生了什么,如果你们能帮助我的话。
我添加的 JMX 远程选项是:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7777
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
注意:我尝试了一个 OSGI 应用程序 (equinox),它与 JMX 的这个参数配合得很好,但我确实需要一个常规的 Java 应用程序。
编辑 1
我添加了一个 Java 代理来检查类加载器。
当我激活 JMX 远程时,类加载器层次结构是(containsConfiguration 意味着 Aspectj 配置是通过 java.lang.ClassLoader.getResource(String) 找到的):
- root
- AdaptorKey [sysHashCode=1672527304, loaderClass=javax.management.remote.rmi.NoCallStackClassLoader, containsConfiguration=false, hasParent=false]
- AdaptorKey [sysHashCode=1040288884, loaderClass=sun.reflect.DelegatingClassLoader, containsConfiguration=false, hasParent=false]
- AdaptorKey [sysHashCode=239625678, loaderClass=sun.reflect.DelegatingClassLoader, containsConfiguration=false, hasParent=false]
- AdaptorKey [sysHashCode=1818873899, loaderClass=javax.management.remote.rmi.NoCallStackClassLoader, containsConfiguration=false, hasParent=false]
- AdaptorKey [sysHashCode=527532737, loaderClass=sun.misc.Launcher$ExtClassLoader, containsConfiguration=false, hasParent=false]
- AdaptorKey [sysHashCode=132787710, loaderClass=sun.misc.Launcher$AppClassLoader, containsConfiguration=true, hasParent=true]
- AdaptorKey [sysHashCode=426901684, loaderClass=sun.reflect.DelegatingClassLoader, containsConfiguration=false, hasParent=false]
如果没有激活 JMX 远程,类加载器层次结构是:
- root
- AdaptorKey [sysHashCode=527532737, loaderClass=sun.misc.Launcher$ExtClassLoader, containsConfiguration=false, hasParent=false]
- AdaptorKey [sysHashCode=132787710, loaderClass=sun.misc.Launcher$AppClassLoader, containsConfiguration=true, hasParent=true]
有了这个结果……我还是不明白发生了什么。该配置是由我的代理找到的,但不是由 Aspectj 找到的...
在日志中我看到 AspectJ 没有注册其他类加载器,而是 javax.management.remote.rmi.NoCallStackClassLoader。
为什么?
最佳答案
我终于找到了解决方案:我需要将“-Xbootclasspath/p:libs/aspectjweaver-1.7.3.jar;libs/aspectjrt-1.7.3.jar”添加到我的命令行中。
使用此选项,一切正常。
完整的命令行是:
java
-javaagent:.\libs\aspectjweaver-1.7.3.jar
-Xbootclasspath/p:libs/aspectjweaver-1.7.3.jar;libs/aspectjrt-1.7.3.jar
-cp ".\libs\ProtoApp-v0.0.1-SNAPSHOT.jar;.\libs\*"
-Xms64m -Xmx512m -XX:MaxPermSize=128m
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7777
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Daj.weaving.verbose=true -Dorg.aspectj.weaver.showWeaveInfo=true
-Dlogback.configurationFile=file:.\logback.xml
org.iiter.continuum.protos.simple.App
感谢安迪·克莱门特的帮助
双线
关于java - AspectJ LTW 无法与 JMX 远程配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784939/
我可以知道应用程序开发人员通常对使用 JMX 感兴趣的典型指标是什么,除了: CPU 使用率 内存消耗 尼古拉斯 最佳答案 我会补充: 类加载器行为 线程 关于jmx - 来自 JMX 的有趣指标,我
是否可以从命令行使用 JMX 在 linux (CentOS) 上运行的进程上获取服务器堆转储? 无法打开 VisualVM,无法安装jmap 最佳答案 可以用这个简单的代码来完成: import c
我必须根据数据库中的条目对 JMX 客户端进行身份验证。因此,我编写了一个自定义的 JMXAuthenticator 实现。 启动我的应用程序时,我可以通过“本地进程”使用 JConsole 访问 M
对于我即将发表的学士论文,我想开发一个工具,从 Apache Flink 收集系统和应用程序数据,并将这些数据以某种“事件”的形式发送到另一个系统。该工具将安装在 Flink 作业和任务管理器节点上。
我正在尝试将 jconsole 连接到通过以下方式调用的 jvm: java \ -Djava.util.logging.config.file=./logging.properties \ -Dco
在 JConsole 中查看 JMX bean 时,它将给定域部分下的所有 bean 呈现为层次结构。 (JVisualVM 与 JConsole MBeans 插件具有相同的行为。) 我意识到 JM
如何配置 CACTI 以监控来自 JMX 的值? 最佳答案 http://forums.cacti.net/post-197459.html有一个很好的教程,介绍如何设置 Cacti 以使用 jmx4
我正在尝试使用 jmx_exporter java 代理( https://github.com/prometheus/jmx_exporter )进行模式匹配和命名普罗米修斯指标。 关于如何在处理
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
看来我过去从来没有让这个工作过。目前,我知道它不起作用。 但是我们启动了 Java 进程: -Dcom.sun.management.jmxremote -Dcom.sun.management.jm
我想知道,我们有没有让开发更容易的框架/库?例如,Apache Mina 或 Netty 使 NIO 编程更容易。 听说过Spring JMX、MX4J,是不是很好用? 最佳答案 我为此使用了 Spr
我正在尝试编写一个应用程序监控工具,我遇到了两个标准,JPDA 和 JMX。他们似乎和我有些相似。有什么不同? 最佳答案 JPDA用于调试 和 JMX用于监控。如果您正在开发监控工具 - 选择是显而易
我已将 jmxtrans 配置为从 "kafka.server":type="BrokerTopicMetrics",name="AllTopicsMessagesInPerSec" 获取值 它有 3
所以我有一个运行 Apache Kafka(测试)的 EC2 服务器。它具有用于 JMX 和 EC2 安全设置的端口 9111,以打开该端口。 我试图在我的 Mac 上运行 JConsole 来读取该
如何将 JMX 指标发送到 statsD 守护进程?我可以看到有一些解决方案,其中有用于轮询 JMX 指标的插件,但我希望更多地将指标推送到一些守护进程,这些守护进程可以聚合并将其存储在某些存储中,例
我想在 tomcat7-maven-plugin 上启用 JMX。如何将 CATALINA_OPTS 传递给插件配置? 最佳答案 两种可能的解决方案(未测试): 在 MAVEN_OPTS 中添加 sy
有没有类似于 Spring JMX 导出器的东西 没有 使用 Spring 框架? SimpleJMX似乎是合理的,但似乎也是一个非常年轻的框架,只有一个人插入。 我需要将一大堆属性、方法和类公开为
我想提取这些数据http://code.google.com/p/memcached-session-manager/wiki/JMXStatistics通过 jmx 但仅使用命令行。 这是因为这是进
当我尝试运行我的应用程序时,出现上述错误。我确信这与我从 log4j 更新到 log4j2 有关,因为如果我不引用 log4j2.xml 文件,错误就会消失。 为什么我会收到此错误? 这是完整的堆栈跟
这与 JMS 和 JMS 提供者的情况类似吗?或者我可以在没有应用程序服务器和 JMX 提供程序的情况下使用 JMX 吗? 最佳答案 绝对是的。 JMX 是标准 JavaSE6 API 的一部分。每个
我是一名优秀的程序员,十分优秀!