问题标签 [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 投票
2 回答
67879 浏览

java - 关于javaagents的教程

我想学习一些关于javaagents的东西,但是研究并不容易。大多数结果是指JADE. 我知道 java 代理可能意味着两件事:

  1. 用 Java 编程的代理是分布式系统代理概念的化身。
  2. 用于增强 JVM 工作的低级软件组件,例如分析器、代码覆盖工具等

我在这里找到了类似的问题,但不幸的是它也指的是版本 1。

你知道第 2 版中关于 javaagent 的任何文章、初学者教程、示例项目吗?我在这里找到了一个,但我正在寻找更多。

0 投票
1 回答
703 浏览

java - javaagents:转换顺序

在我的项目中,我想分两个阶段转换字节码。顺序很重要。

  1. 首先我需要改变方法定义
  2. 然后调用方法的方式

例如

  1. 将定义从 更改String hello()String hello(String s)
  2. 将呼叫从更改Hello.hello()Hello.hello("newArgument")

我设法添加了变压器,这是第一步。

我的问题是:我可以这样添加新的变压器吗:

并确定MyClassFileTransformer他的工作之前MyClassFileTransformer2

0 投票
2 回答
484 浏览

java - 创建 Java 代理与调用 Notes API - Louts Notes

我的任务是阅读 Lotus Dominos 邮箱中的电子邮件。为了执行相同的操作,我有以下两个选项(可能还有其他选项):

  1. 在邮箱中创建一个 Java 代理并安排它。它将处理邮件并采取行动。\
  2. 使用使用过的 Notes API 编写单独的 Java 代码并调用 dominos 服务器来获取邮件并进行处理。

两者有什么区别?能力还是其他?

0 投票
1 回答
429 浏览

java - jvmti for jdk 6 - 参考和教程

有谁知道学习编写 jvmti 代理的好起点。

我正在为此寻找书籍或在线教程。

我查看了http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html

但它似乎没有提供一个明确的方法大纲。

任何参考将不胜感激。

0 投票
1 回答
670 浏览

java - 为tomcat应用程序运行classmexer?

我正在尝试将 classmexer-0.3.jar 与 tomcat 一起使用来获取我的 Web 应用程序的对象大小。但是,当调用该方法时,我收到以下错误消息:

我能做些什么来解决这个问题?我假设我需要一个带有 TransactionManager 类的 jar,但我不知道是哪一个。

我的项目是在 Eclipse 中使用 Maven 构建的,用于开发并从带有 Jenkins 的 unix 服务器运行。

干杯,

阿列克谢蓝。

编辑:现在看起来正在为更基本的对象工作,这表明设置是正确的。我认为问题是在调用 MemoryUtil.deepMemoryUsageOf(Obj) 时引起的,其中 obj 包含 Google LoadingCache。看来我可能错过了一些来源,关于该来源的任何想法?

0 投票
1 回答
1838 浏览

java - Javaagent 报告“此环境不支持重定义类”

我是java代理的新手。我创建了一个简单的 HotswapAgent 类(从 Play!Framework 嗅探):

有了这个清单:

我尝试以这种方式重新加载一个新的类定义:

所有这些类都在一个罐子里,最后我得到这个错误(在 reload() 调用上):

但是在 Manifest 中声明了Can-Redefine-Classes: true

JVM 是标准的 MacOS X Java 1.6 VM。这个 JVM 与使用相同代理机制的 JRebel 配合得很好。

怎么了?

0 投票
1 回答
923 浏览

lotus-domino - Java 代理生成文件链接

中,如果要发送对网络驱动器上文件的引用,则需要手动创建热点链接。是否可以通过具有相同链接的 Java 代理以编程方式发送电子邮件?

(在 mimeentity中可以用于此目的,但我不确定。)

0 投票
2 回答
3503 浏览

java - 检查非空后空指针异常

我在一个不应该为空的变量上有一个奇怪的 java.lang.NullPointerException。

param1 作为方法参数给出,它可以为 null。通常,当影响 param1 到 params[0] 时,它不为空(否则它不会通过 if 语句)。

这是错误(第 144 行是“params[0] = param1;”):

以下是发生异常的方法的完整代码:

编辑:

为了澄清我的例子,我处于以下情况:

  1. 使用 ASM 检测 Java 应用程序
  2. 在使用 Java 代理时运行新的检测类
  3. 代理将使用检测代码收集的信息来运行一些测量
  4. 代理还收集应用程序的方法参数值。

为此,在每个方法运行时都会执行 onMethodEntry。我有几种具有不同签名的方法。尤其是:

这是我用于检测程序类的代码(即河内塔):

0 投票
1 回答
1684 浏览

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

0 投票
1 回答
1255 浏览

java - 在 Java Instrumentation Agent 库中重新转换本机方法

我正在尝试编写一个通过附加 api 动态加载的 Java 代理库,以重新转换一些方法(那些出现在某些线程的堆栈跟踪中的方法)以记录方法的进入/退出。然后通过自定义导出方法进入/退出信息MBean

到目前为止,只要检测方法不是本地的,我当前的“原型”就可以工作。

根据java.lang.instrument.Instrumentation#setNativeMethodPrefix()的文档,java 代理应该可以用非本地存根方法替换本地方法,并在其名称中添加另一个带有该前缀的本地方法,然后绑定到原始本机方法的本机代码。

但是,在实施此操作时,我收到此错误:

这是正确的,因为我添加了新的本机方法。

只有用非本地方法替换本地方法才有效,但是我不能将调用委托回原始本地方法。在另一个类中定义本机方法也不起作用,因为本机方法是通过类名和方法名查找的,没有nativeMethodClassSuffix或类似的。在另一个新的类加载器中定义另一个同名的类是可行的,我认为可以通过一些间接方式将调用委托给新类,但是一个本机库只能链接到由只有一个类加载的本机方法类加载器,所以我不会正确链接本机方法。

我在这里有什么明显的遗漏吗?我的代码有点长,无法在此处发布,如果有人认为它有帮助,我可以尝试构建一个小型示例 java 代理来显示问题并在此处链接到它。