问题标签 [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 - javaagents:转换顺序
在我的项目中,我想分两个阶段转换字节码。顺序很重要。
- 首先我需要改变方法定义
- 然后调用方法的方式
例如
- 将定义从 更改
String hello()
为String hello(String s)
- 将呼叫从更改
Hello.hello()
为Hello.hello("newArgument")
我设法添加了变压器,这是第一步。
我的问题是:我可以这样添加新的变压器吗:
并确定MyClassFileTransformer
他的工作之前MyClassFileTransformer2
?
java - 创建 Java 代理与调用 Notes API - Louts Notes
我的任务是阅读 Lotus Dominos 邮箱中的电子邮件。为了执行相同的操作,我有以下两个选项(可能还有其他选项):
- 在邮箱中创建一个 Java 代理并安排它。它将处理邮件并采取行动。\
- 使用使用过的 Notes API 编写单独的 Java 代码并调用 dominos 服务器来获取邮件并进行处理。
两者有什么区别?能力还是其他?
java - jvmti for jdk 6 - 参考和教程
有谁知道学习编写 jvmti 代理的好起点。
我正在为此寻找书籍或在线教程。
我查看了http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html
但它似乎没有提供一个明确的方法大纲。
任何参考将不胜感激。
java - 为tomcat应用程序运行classmexer?
我正在尝试将 classmexer-0.3.jar 与 tomcat 一起使用来获取我的 Web 应用程序的对象大小。但是,当调用该方法时,我收到以下错误消息:
我能做些什么来解决这个问题?我假设我需要一个带有 TransactionManager 类的 jar,但我不知道是哪一个。
我的项目是在 Eclipse 中使用 Maven 构建的,用于开发并从带有 Jenkins 的 unix 服务器运行。
干杯,
阿列克谢蓝。
编辑:现在看起来正在为更基本的对象工作,这表明设置是正确的。我认为问题是在调用 MemoryUtil.deepMemoryUsageOf(Obj) 时引起的,其中 obj 包含 Google LoadingCache。看来我可能错过了一些来源,关于该来源的任何想法?
java - Javaagent 报告“此环境不支持重定义类”
我是java代理的新手。我创建了一个简单的 HotswapAgent 类(从 Play!Framework 嗅探):
有了这个清单:
我尝试以这种方式重新加载一个新的类定义:
所有这些类都在一个罐子里,最后我得到这个错误(在 reload() 调用上):
但是在 Manifest 中声明了Can-Redefine-Classes: true
。
JVM 是标准的 MacOS X Java 1.6 VM。这个 JVM 与使用相同代理机制的 JRebel 配合得很好。
怎么了?
lotus-domino - Java 代理生成文件链接
在Lotus中,如果要发送对网络驱动器上文件的引用,则需要手动创建热点链接。是否可以通过具有相同链接的 Java 代理以编程方式发送电子邮件?
(在lotusscript mimeentity中可以用于此目的,但我不确定。)
java - 检查非空后空指针异常
我在一个不应该为空的变量上有一个奇怪的 java.lang.NullPointerException。
param1 作为方法参数给出,它可以为 null。通常,当影响 param1 到 params[0] 时,它不为空(否则它不会通过 if 语句)。
这是错误(第 144 行是“params[0] = param1;”):
以下是发生异常的方法的完整代码:
编辑:
为了澄清我的例子,我处于以下情况:
- 使用 ASM 检测 Java 应用程序
- 在使用 Java 代理时运行新的检测类
- 代理将使用检测代码收集的信息来运行一些测量
- 代理还收集应用程序的方法参数值。
为此,在每个方法运行时都会执行 onMethodEntry。我有几种具有不同签名的方法。尤其是:
这是我用于检测程序类的代码(即河内塔):
java - Lotus Notes 6.5 中的 JavaAgent 使用轴 api 给出异常“没有为 org.apache.commons.logging.LogFactory 定义实现”
我需要在 Lotus Notes 6.5 DB 中编写 JavaAgent 来访问 Web 服务。为此,我使用了 Axis Apache API。我创建了一个 Java 代理,并使用编辑项目按钮在代理中添加了轴的 jar 文件。
下面是代理代码:
下面是抛出的异常:
我试着在互联网上关注一些链接,比如,但我无法准确地得到它要求做的事情。例如:http ://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/40d033fba3897f4d85256cd30034026a?OpenDocument
任何帮助都会很棒。我想做的就是编写一个代理,以便我可以访问 Web 服务,比如 w3schools 上的温度转换 Web 服务。http://www.w3schools.com/webservices/tempconvert.asmx?op=FahrenheitToCelsius
java - 在 Java Instrumentation Agent 库中重新转换本机方法
我正在尝试编写一个通过附加 api 动态加载的 Java 代理库,以重新转换一些方法(那些出现在某些线程的堆栈跟踪中的方法)以记录方法的进入/退出。然后通过自定义导出方法进入/退出信息MBean
。
到目前为止,只要检测方法不是本地的,我当前的“原型”就可以工作。
根据java.lang.instrument.Instrumentation#setNativeMethodPrefix()的文档,java 代理应该可以用非本地存根方法替换本地方法,并在其名称中添加另一个带有该前缀的本地方法,然后绑定到原始本机方法的本机代码。
但是,在实施此操作时,我收到此错误:
这是正确的,因为我添加了新的本机方法。
只有用非本地方法替换本地方法才有效,但是我不能将调用委托回原始本地方法。在另一个类中定义本机方法也不起作用,因为本机方法是通过类名和方法名查找的,没有nativeMethodClassSuffix
或类似的。在另一个新的类加载器中定义另一个同名的类是可行的,我认为可以通过一些间接方式将调用委托给新类,但是一个本机库只能链接到由只有一个类加载的本机方法类加载器,所以我不会正确链接本机方法。
我在这里有什么明显的遗漏吗?我的代码有点长,无法在此处发布,如果有人认为它有帮助,我可以尝试构建一个小型示例 java 代理来显示问题并在此处链接到它。