javassist.CannotCompileException: [源错误] ) 丢失了这是什么?

2024-04-02

我现在尝试在我的 Web 应用程序中编写一些字节码操作,当我尝试将代码注入到我的方法中时,它总是会抛出错误

javassist.CannotCompileException: [源错误] ) 丢失

我不知道为什么以及这是什么......我用谷歌搜索了一下,有些人说这是 1.0 javassist 版本的错误,但我认为这真的不现实。

  private void changeMethod(CtMethod method) throws NotFoundException, 
CannotCompileException {
    if (method.hasAnnotation(Loggable.class)) {

    method.getName();


        method.insertBefore("long startTime = 0;" +
                "long startTime = System.currentTimeMillis();" +
                " Thread thread1 = new Thread(new Runnable(){\n" +
                "            @Override\n" +
                "            public void run() {\n" +
                "                threadLogger.info(\"Testlog\");\n" +
                "\n" +
                "                try {\n" +
                "                    threadLogger.logCall(Webservice.this.getClass().getMethod(startThread0), \"Thread\");\n" +
                "                   \n" +
                "                } catch (Exception e) {\n" +
                "                    e.printStackTrace();\n" +
                "                }\n" +
                "\n" +
                "            }\n" +
                "        });\n" +
                "        thread1.start();");

    }
}
enter code here

正如您可以在 Javassist 文档中读到的那样,第 4.7 节 限制 http://jboss-javassist.github.io/javassist/tutorial/tutorial2.html#limit(粗体是我的):

不支持内部类或匿名类。请注意,这 仅是编译器的限制。无法编译源代码 包括匿名类声明。 Javassist 可以阅读和 修改内部/匿名类的类文件。

您正在尝试注入匿名 Runnable 类,因此它不起作用。解决此问题的最佳方法是将 Runnable 类代码提取到注入和运行时类路径中可用的新类,并在注入代码中使用该类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javassist.CannotCompileException: [源错误] ) 丢失了这是什么? 的相关文章

  • Android PhoneGap 插件,UI 选项卡栏,调整 WebView 大小

    我正在创建一个美味的 PhoneGap 插件 希望一旦它能被打开 准备好了 插件基本完成了 我只需要一个漂亮的用户界面 相互作用 简而言之 我想创建一个 本机 android 工具栏组件 如果您实现 PhoneGap UIControls
  • Maven 2:如何将当前项目版本打包在WAR文件中?

    我正在使用 Maven 2 构建我的 Java 项目 并且正在寻找一种向用户呈现 pom xml 当前版本号的方法 例如使用 Servlet 或 JSP 据我所知 最好的方法是 Maven 将版本号作为文本文件打包到 WAR 中 这使我能够
  • 具有默认值的 Java JAX-RS 自定义参数

    假设我有这个 这只是一个示例 GET Path value address Produces application json public Response getAddress QueryParam user User user 用户是
  • 在Java中使用命令行编译多个包

    您好 我一直在使用 IDE 但现在我需要从命令行运行和编译 问题是我有多个软件包 我试图找到答案 但没有任何效果 所以我有 src Support java files Me java files Wrapers java files 你知
  • 将 Hibernate 对象序列化为 JSON 时抛出异常

    好吧 我正在使用 Hibernate 将一个小型数据库加载到一些表示表的类并与数据库交互 一切都很好 我真的可以看到所有结果 而且我没有任何空字段 所有这些都已被使用 这里我展示了 主 类 表 import javax persistenc
  • 无法在类对象的 ArrayList 中存储值。 (代码已编辑)

    这基本上是一个 Java 代码转换器 它涉及一个 GUI 让用户输入类类型 名称和方法 为了存储值 我创建了一个类VirtualClass与ArrayList
  • 如何开始使用 Chainsaw for Log4j?

    我想开始使用 Chainsaw v2 几乎没有关于它的信息 我只找到了this http www velocityreviews com forums t140105 help using chainsaw for log4j html 但
  • RMI 中的引用传递问题? [复制]

    这个问题在这里已经有答案了 有人可以告诉我我错在哪里 为什么这个 RMI 聊天应用程序不起作用 目标是通过远程对象或序列化对象实现客户端 服务器和逻辑之间的解耦 import javax swing import java awt even
  • 尝试使用 JRI 将 R 与我的 Java 应用程序集成,但出现错误。谁能解释一下原因和解决办法吗?

    我需要将 Java 与 R 集成来运行一些数学命令并使用 R 的功能进行绘图 以下部分代码给出了错误 public static void main String args HelloRWorld r new HelloRWorld r h
  • java.lang.LinkageError:尝试重复的类定义

    为什么会发生错误以及如何修复它 02 13 02 pool 4 thread 2 WARN Exception in thread pool 4 thread 2 02 13 02 pool 4 thread 2 WARN java lan
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • JSch中如何设置文件类型和文件传输模式?

    我使用 Apache Common NetFTPClient并设置了我的ftpClient在上传文件之前使用如下所示的方法 ftpClient setFileType FTP BINARY FILE TYPE ftpClient setFi
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • 为什么我的代码会产生错误:该语句没有返回结果集[重复]

    这个问题在这里已经有答案了 我正在从 Microsoft SQL Server Studio 执行以下查询 该查询工作正常并显示结果 SELECT INTO temp table FROM md criteria join WHERE us
  • 警告:无法更改每个人的权限:

    当运行 Java 快速入门示例时https developers google com drive web quickstart java hl hu https developers google com drive web quicks
  • 防止Java实例化的正确方法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java:使用 Graph API 在线更新 Sharepoint 上的 docx 文件

    我在使用 Java 在线更新 Sharepoint 上的 docx 文件时遇到问题 首先 我检查了构建 PUT 请求的 URL 此处 并使用此请求 PUT drives drive id items item id content 我首先使
  • 为什么应该首选 Java 类的接口?

    PMD https pmd github io 将举报以下违规行为 ArrayList list new ArrayList 违规行为是 避免使用 ArrayList 等实现类型 而是使用接口 以下行将纠正违规行为 List list ne

随机推荐

  • 如何按值(DESC)然后按键(ASC)对字典进行排序?

    就在发现了惊人的事情之后sorted 我又陷入困境了 问题是我有一本以下形式的字典string key integer value 我需要按整数值的降序对它进行排序 but如果两个元素具有相同的值 则按键的升序排列 一个更清楚的例子 d b
  • Flask Unicode 解码错误

    Error UnicodeDecodeError ascii 编解码器无法解码位置 24 中的字节 0xf0 序数不在范围内 128 所以基本上我有一个 Flask 应用程序 用户填写注册表单并呈现一个新页面 这是代码 render tem
  • 使 UIScrollView 以 UITextView 作为子视图获取触摸事件

    我有一个包含 UITextView 不可编辑 的 UIScrollView 我无法使 UIScrollView 获取触摸事件 UITextView 似乎获取并保留它们 知道如何让 UIScrollView 获取触摸事件吗 我希望 UITex
  • 在元素属性内回显?

    我只是想知道是否可以将 php echo 放入 iframe 中 像这样的东西 如果不是 正确的做法是什么 PHP 的工作方式是在发送 HTML 之前在幕后完成工作 因此当您实际将完整数据发送给用户时 它已被解析为应提供给浏览器的内容 也就
  • Jetpack Compose LargeTopAppBar 显示标题两次

    我正在尝试使用 Scaffold 和 LargeTopAppBar 构建 Jetpack Compose 应用程序 我目前有一个非常简单的 UI 只有 Scaffold 中的 LargeTopAppBar 但是当我运行我的应用程序时 我在屏
  • 使用 XML 和 XSL

    第一次编辑我正在获取Child 1标签以 C 形式放入 DropDownList 请建议用于删除 XML 文件中的父标签及其所有子标签的最佳实践代码 C 例子
  • 从n中生成k个元素的“反灰色”按需组合的算法

    我正在尝试实现一种算法 从一组 n 个元素中获取 k 个元素的所有组合 其中两个连续组合之间的差异最大化 类似于反向格雷码 换句话说 应该对组合进行排序以避免元素连续出现两次 这样就不会不必要地歧视任何元素 理想情况下 该算法也不会预先计算
  • C# 的每个循环按什么顺序迭代 List

    我想知道 C 中的 foreach 循环循环的顺序System Collections Generic List
  • 是否有用于平面度测试的在线算法?

    我知道平面度测试 http en wikipedia org wiki Planarity testing可以在 O v 相当于 O e 因为平面图有 O v 条边 时间内完成 我想知道是否可以在 O 1 摊销时间内在线完成 因为添加每个边
  • 在 MySQL 中使用 NoSQL

    我注意到 MySQL 可以将 Memcached NoSQL 与 InnoDB 结合使用 但我无法检索有关如何使用它的信息 我想与 PHP 一起使用 NoSQL 查询是标准的吗 首先 MySQL从5 6版本开始只支持NoSQL的memcac
  • 在 Django 中创建时将用户添加到组

    仅当创建用户后将该用户的字段指定为 True 时 我才希望将用户添加到组中 创建的每个用户都会有一个与之关联的 用户配置文件 这是实现这样的事情的正确方法吗 模型 py def add group sender instance creat
  • npm run build 不使用代理

    我有一个正在运行的react js应用程序 它使用npm start 使用create react app构建的应用程序 运行 当我尝试运行 npm run build 时 它会构建应用程序 我用它来服务 serve s build l 3
  • LIKE 条件中的多个字符串 - Presto SQL

    我想使用查询表中的列LIKE条件 这工作正常 select from my table where my column LIKE hello 但是 如何在我的数据库中使用多个字符串查询此列LIKE健康 状况 寻找类似的东西 select f
  • Flash 安全错误 #2048:是否有解决方法,或者 Twilio 是否必须更改其元策略?

    我的 Flash Flex 应用程序出现问题 几个月来 它可以从 Twilio 下载文件 但现在我收到以下错误 我不得不删除超链接 所以想象 ttp 实际上是 http 安全错误事件 类型 安全错误 气泡 false 可取消 假事件阶段 2
  • Bash 将 Curl 结果存储到数组中

    我正在运行以下curl命令 results curl USERNAME PASSWORD URL search dates dateFields created from Three Months Ago today repos gener
  • jenkins maven setPerCoreThreadCount

    詹金斯版本 1 538 使用 Maven 3 1 0 工作得很好 使用 Maven 3 2 1 会出现以下错误 Jenkins自己安装了Maven 3 2 1 从Apache下载并解压 怎么了 Parsing POMs maven31 ag
  • Java 中哪个重载会被选择为 null?

    如果我用 Java 写下这一行 JOptionPane showInputDialog null Write something 将调用哪个方法 showInputDialog Component parent Object message
  • 一个可选参数,不需要位置参数

    我有一个关于 python argparse 的问题 是否可以有一个不需要位置参数的可选参数 Example parser add argument lat help latitude parser add argument lon hel
  • 在 IntelliJ 中的 Java 早期访问版本中启用“预览”功能

    不幸的是 即使是 IntelliJ 的最新早期访问版本通常也不支持 Java 的早期访问版本 例如 我正在尝试使用Intellij 2022 1 1预览版 终极版 与实验构建 https jdk java net loom of 织机计划
  • javassist.CannotCompileException: [源错误] ) 丢失了这是什么?

    我现在尝试在我的 Web 应用程序中编写一些字节码操作 当我尝试将代码注入到我的方法中时 它总是会抛出错误 javassist CannotCompileException 源错误 丢失 我不知道为什么以及这是什么 我用谷歌搜索了一下 有些