问题标签 [javaagents]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 Instrumentation 记录未处理的异常
我试图使用仪器调试 java 应用程序。当前系统的问题是
- 几乎没有写任何日志语句
- 异常处理不佳
这使得很难追踪功能损坏的根本原因。
为了处理这种情况,我开发了工具,使用Instrumentation
API 的 java 代理,我能够注入日志语句并解决了一半的问题。
但下一个问题是记录异常。我想扩展我的工具记录应用程序执行期间抛出的每个异常。我尝试使用javaassist
方法的API(使用addCatch
,insertBefore
和insertAfter
)注入'try-catch'块,它在一定程度上是有效的。
这里 inserLog(..)
方法将注入必要的日志语句并且工作正常,但是当有任何异常时它不会出现在转换器中。
但问题是某些方法在内部处理异常(即使没有日志/系统输出)。
例如:
NullPointerException
当值为null 时,此代码会吃掉search
,我从不知道此异常并且应用程序因其他原因而失败。
最终我想要的是一种记录应用程序抛出的任何异常的机制。以下细节将被捕获
- 异常类型
- 异常堆栈跟踪
- 方法和类名
我知道有 API Thread.setDefaultUncaughtExceptionHandler
,但不确定它如何与 java 工具一起使用。我没有任何源访问该应用程序。
[更新1]
我发现下面的链接告诉使用retransformation
,我会尝试更新
任何指导都会非常有帮助。
java - JUnit 和 aspectJ 不能一起工作
我正在使用带有加载时间编织的 aspectJ。
为了执行我的 tomcat 服务器,我需要添加 jvm 参数:
服务器与编织完美运行。
问题是当我尝试运行我的 junit 测试时,它们都因编织错误而失败。如果我也没有为服务器提供 jvm 参数,则会发生编织错误。
所以很可能当我运行junit测试时,代理没有被调用。
我如何准确地配置使用 jvm 参数执行 junit?
谢谢
configuration - NoClassDefException,需要在 JBoss AS 7 中添加一些东西
我在我的 jboss AS 7 上安装了一个 java 代理。但是当我运行standalone.bat 时,它会抛出 NoClassDefException。我找到代理的故障排除指南,上面写着“
还要验证应用程序是否使用 OSGi。如果是这样(如在 JBoss 7 中),请将com.itko添加到系统或引导程序包中。添加com.itko的方法依赖于容器,难以提供具体说明。但是,它通常是一个配置文件,其属性指定包列表或类似的 JVM 参数。”
你能给我提供如何在 JBoss AS 7 上添加它的具体说明吗?
谢谢
jvm - Gradle 应用程序插件:如何使用 -javaagent 选项运行 jvm 应用程序?
我使用 gradle (v1.10) 中的应用程序插件来打包和运行我的应用程序。
所以,现在我需要使用切面(aspectj),而我不想使用切面编译器(ajc)。
是否可以调整 gradle 应用程序运行脚本,以便我的应用程序可以使用加载时间编织运行?提供 jvm 选项之类的东西:
-javaagent:_path_to_aspectj_weaver.jar
eclipse - LogManager Exception in JBOSS AS 7.1 with java.util.Logger
I created a java application and initialize a java.util.Logger with that application and run that application as -javaagent
with jboss AS 7 server and i got IllegalStateException
(i am using eclipse IDE).Here follows my logger initialization code
When i create -javaagent
jar appended with above lines of code and run with jboss as7 server i got following exception
And i serched in fourms and i got a solution which is Open the launch configuration for the server definition.
and add -logmodule org.jboss.logmanager
to the program arguments before org.jboss.as.standalone
.
But it results the same exception with some additional warning. Here follows the exception
java - 在 Maven Java 项目中直接使用 Jolokia JVM 代理
我有一个简单的 Java Maven 项目,想使用Jolokia的 JVM 代理来获取 JMX 值。当我手动下载jolokia-jvm-1.1.5-agent.jar并将绝对路径添加到 java 参数(如-javaagent:/absolute/path/to/jolokia-jvm-1.1.5-agent.jar
.
由于Jolokia 下载页面还列出了 maven 依赖项(jolokia-core
),我想知道是否可以将其直接包含到我的 Maven 构建中,而无需手动下载 JVM 代理?如何使用这个 javaagent 运行我的程序?
java - 如何使用代理选项记录(调试)javaagent
我像这样设置我的javaagent:
但它不起作用,所以我有兴趣看看日志。如果我想获取日志消息,我可以向 javaagent 添加什么?(堆栈跟踪,加载了哪些类等...)
我相信“选项”应该用于此。
文档说:
使用命令行界面的实现,通过将此选项添加到命令行来启动代理:
jarpath 是代理 JAR 文件的路径。options 是代理选项
我到底应该在方括号内写什么?“日志”?“调试”?还有什么?我知道它很蹩脚,但我找不到正确的语法。
java - 是否有可用的 Java 代理可以删除类和方法上的 final 修饰符?
我正在寻找一个可立即使用的 Java-Agent,它可以final
从类和方法中删除所有修饰符。我使用谷歌,但没有发现任何有用的东西。我也不想实现一个,因为我认为即使使用 javassist 或 ASM 也很难!?
动机是什么?我的快速想法是克服模拟最终类/方法的限制,而无需引入额外的库或降低被测代码的设计质量。
我想模拟最终类和/或最终方法,但我不想:
final
...出于设计原因删除表单类和方法- ...为具有精确一种实现的类引入接口
- ...使用类似 PowerMock 的东西
java - javagent 需要一个罐子。如何使用 Gradle 构建和测试?
我正在构建一个 JavaAgent,它可以--javaagent:my.jar=<option>
在运行时通过 jvm 加载或动态附加到 jvm(例如virtualMachine.loadAgent(jarFile, "");
)。在任何情况下,它都需要一个带有适当 manifest.txt 文件的 Jar 文件才能工作。这对我现在的测试来说是个问题。
我正在使用 Gradle,目前正在努力解决以下问题:
- Gradle 的测试任务不依赖于 Jar(见这里)=> 需要为测试执行添加该依赖项
- 默认情况下,编译的测试类被添加到类路径中。测试类路径必须去掉,替换成jar文件名
任何想法如何实现这一点。尤其是第二个?
谢谢你的帮助
cassandra - Cassandra:The stack size specified is too small, Specify at least 228k
I'm getting this error when starting cassandra
after upgrade. Any idea?