问题标签 [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.

0 投票
3 回答
4156 浏览

java - 使用 Instrumentation 记录未处理的异常

我试图使用仪器调试 java 应用程序。当前系统的问题是

  • 几乎没有写任何日志语句
  • 异常处理不佳

这使得很难追踪功能损坏的根本原因。

为了处理这种情况,我开发了工具,使用InstrumentationAPI 的 java 代理,我能够注入日志语句并解决了一半的问题。

但下一个问题是记录异常。我想扩展我的工具记录应用程序执行期间抛出的每个异常。我尝试使用javaassist方法的API(使用addCatchinsertBeforeinsertAfter)注入'try-catch'块,它在一定程度上是有效的。

这里 inserLog(..)方法将注入必要的日志语句并且工作正常,但是当有任何异常时它不会出现在转换器中。

但问题是某些方法在内部处理异常(即使没有日志/系统输出)。

例如:

NullPointerException当值为null 时,此代码会吃掉search,我从不知道此异常并且应用程序因其他原因而失败。

最终我想要的是一种记录应用程序抛出的任何异常的机制。以下细节将被捕获

  • 异常类型
  • 异常堆栈跟踪
  • 方法和类名

我知道有 API Thread.setDefaultUncaughtExceptionHandler,但不确定它如何与 java 工具一起使用。我没有任何源访问该应用程序。

[更新1]

我发现下面的链接告诉使用retransformation,我会尝试更新

如何检测 java 系统类?

任何指导都会非常有帮助。

0 投票
1 回答
475 浏览

java - JUnit 和 aspectJ 不能一起工作

我正在使用带有加载时间编织的 aspectJ。

为了执行我的 tomcat 服务器,我需要添加 jvm 参数:

服务器与编织完美运行。

问题是当我尝试运行我的 junit 测试时,它们都因编织错误而失败。如果我也没有为服务器提供 jvm 参数,则会发生编织错误。

所以很可能当我运行junit测试时,代理没有被调用。

我如何准确地配置使用 jvm 参数执行 junit?

谢谢

0 投票
1 回答
50 浏览

configuration - NoClassDefException,需要在 JBoss AS 7 中添加一些东西

我在我的 jboss AS 7 上安装了一个 java 代理。但是当我运行standalone.bat 时,它会抛出 NoClassDefException。我找到代理的故障排除指南,上面写着“

还要验证应用程序是否使用 OSGi。如果是这样(如在 JBoss 7 中),请将com.itko添加到系统或引导程序包中。添加com.itko的方法依赖于容器,难以提供具体说明。但是,它通常是一个配置文件,其属性指定包列表或类似的 JVM 参数。”

你能给我提供如何在 JBoss AS 7 上添加它的具体说明吗?

谢谢

0 投票
1 回答
3698 浏览

jvm - Gradle 应用程序插件:如何使用 -javaagent 选项运行 jvm 应用程序?

我使用 gradle (v1.10) 中的应用程序插件来打包和运行我的应用程序。

所以,现在我需要使用切面(aspectj),而我不想使用切面编译器(ajc)。

是否可以调整 gradle 应用程序运行脚本,以便我的应用程序可以使用加载时间编织运行?提供 jvm 选项之类的东西:

-javaagent:_path_to_aspectj_weaver.jar

0 投票
3 回答
20570 浏览

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

0 投票
1 回答
4342 浏览

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 运行我的程序?

0 投票
1 回答
1049 浏览

java - 如何使用代理选项记录(调试)javaagent

我像这样设置我的javaagent:

但它不起作用,所以我有兴趣看看日志。如果我想获取日志消息,我可以向 javaagent 添加什么?(堆栈跟踪,加载了哪些类等...)

我相信“选项”应该用于此。

文档说:

使用命令行界面的实现,通过将此选项添加到命令行来启动代理:

jarpath 是代理 JAR 文件的路径。options 是代理选项

到底应该在方括号内写什么?“日志”?“调试”?还有什么?我知道它很蹩脚,但我找不到正确的语法。

0 投票
0 回答
318 浏览

java - 是否有可用的 Java 代理可以删除类和方法上的 final 修饰符?

我正在寻找一个可立即使用的 Java-Agent,它可以final从类和方法中删除所有修饰符。我使用谷歌,但没有发现任何有用的东西。我也不想实现一个,因为我认为即使使用 javassist 或 ASM 也很难!?

动机是什么?我的快速想法是克服模拟最终类/方法的限制,而无需引入额外的库或降低被测代码的设计质量。

我想模拟最终类和/或最终方法,但我不想:

  • final...出于设计原因删除表单类和方法
  • ...为具有精确一种实现的类引入接口
  • ...使用类似 PowerMock 的东西
0 投票
1 回答
610 浏览

java - javagent 需要一个罐子。如何使用 Gradle 构建和测试?

我正在构建一个 JavaAgent,它可以--javaagent:my.jar=<option>在运行时通过 jvm 加载或动态附加到 jvm(例如virtualMachine.loadAgent(jarFile, "");)。在任何情况下,它都需要一个带有适当 manifest.txt 文件的 Jar 文件才能工作。这对我现在的测试来说是个问题。

我正在使用 Gradle,目前正在努力解决以下问题:

  1. Gradle 的测试任务不依赖于 Jar(见这里)=> 需要为测试执行添加该依赖项
  2. 默认情况下,编译的测试类被添加到类路径中。测试类路径必须去掉,替换成jar文件名

任何想法如何实现这一点。尤其是第二个?

谢谢你的帮助

0 投票
1 回答
13939 浏览

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?