Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Glassfish - javassist.NotFoundException - Failed框架中失败的工具类

使用Glassfish - javassist.NotFoundException - Failed框架中失败的工具类
EN

Stack Overflow用户
提问于 2020-05-19 08:50:44
回答 1查看 806关注 0票数 0

当使用javassist测试com.sun.net.*类时,我可以成功地使用.insertAfter方法。然而,当试图从运行在Glassfish中的应用程序中检测第三方类时,我得到了一个错误:

测试com.app.class失败

agent.internal.javassist.CannotCompileException:找不到org.springframework.class

因此,javaagent似乎能够获取类的字节码,但无法编译它,因为无法找到(从org.springframework)被检测的方法的一些依赖项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-19 08:50:44

这是一种不寻常的行为,正如人们所期望的那样,javassist只需将字节码附加到已检测的方法中,而不必引用该方法中引用的任何类。

我可以通过检查代理使用的ClassPool来调试这个问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ClassPool pool = new ClassPool();
pool.appendSystemPath();
CustomLogger.logText("Class pool: " + pool.toString());

其结果是:

类池:类路径: my.java.agent.Transformer.class:java.lang.Object.class:

然后我们可以插入确切的路径(在代理将运行的机器上!)到缺少的库*.jar到classPool中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pool.insertClassPath("/path/to/glassfish/modules/missing-module.jar");

其结果是:

类池:类路径: file:/path/to/glassfish/modules/missing-module.jar:my.java.agent.Transformer.class:java.lang.Object.class:

现在可以编译类了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61896496

复制
相关文章
MyBatis框架教程「工具类的使用」
上篇文章我们熟悉运用MyBatis进行增删改查,并且手写了一个mybatis的工具类,学习了一些关于单元测试和关于日志的配置,没有看的读者请移步:MyBatis框架教程「实践与工具类封装」
用户1093975
2018/09/21
1.1K0
MyBatis框架教程「工具类的使用」
Mongodb底层java驱动框架工具类使用
使用MongoDB需要对文档结构进行合理的设计,以满足某些特定需求。比如随机选取文档,使用skip跳过随机个文档就没有在文档中加个随机键,
用户5166556
2019/04/16
1.6K0
检索com类工厂中的组件失败_检索com类工厂的组件失败
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。 (异常来自 HRESULT:0x8000401A)。
全栈程序员站长
2022/09/23
1.4K0
BeanUtils工具类中的copyProperties方法使用「建议收藏」
BeanUtils是开发中常用到的工具类,而获取这一工具类主要是通过导入org.springframework.beans.BeanUtils或者org.apache.commons.beanutils.BeanUtils包来获取,但是不同的包中BeanUtils的方法使用是不一样的,接下来就对这两个包中的copyProperties方法进行对比。
全栈程序员站长
2022/11/09
4.7K0
Java代码中BeanUtils工具类的populate方法使用
这个工具的populate静态方法可以直接将map对象封装成实体类,简化代码编写,这里做一下记录。比如:
全栈程序员站长
2022/09/14
7580
SpringBoot中的JWT工具类
JWT是 单点登录(SSO=single sign on)的实现方法之一 直接上代码 首先引入依赖 <dependencies> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> </dependency> </dependencies> 然后便是工具类的编写 JwtUtils.java //常量 public stat
Tom2Code
2022/11/21
1.4K0
GlassFish 总结
Glassfish是一款Web应用服务器,和Tomcat一样,也是一款优秀的Servlet容器。
全栈程序员站长
2022/09/06
6530
docker 启动失败排查(loopback attach failed)
某个清晨来到公司,突然发现MySQL,redis一直Connection TimedOut,打开Navicat连接MySQL连接不上,无法打开Portainer(docker可视化操作页面);远程连接服务器发现docker挂掉了,使用systemctl start docker无法启动,使用dockerd启动查看报错信息。
用户10325771
2023/03/01
1.5K0
docker 启动失败排查(loopback attach failed)
Java中的并发工具类
假如有这样一个需求:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。在这个需求中,要实现主线程等待所有线程完成sheet的解析操作,最简单的做法是使用join()方法,如下:
103style
2022/12/19
2010
Java Arrays工具类的使用
Arrays 类 java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能: 给数组赋值:通过fill方法。 对数组排序:通过sort方法,按升序。 比较数组:通过equals方法比较数组中元素值是否相等。 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。 具体说明请查看下表: 序号 方法和说明 1 public static int binarySearch(Object[] a, Object key)用二分查
10JQKA
2018/07/05
5410
Java Arrays工具类的使用
Arrays 类 java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能: 给数组赋值:通过fill方法。 对数组排序:通过sort方法,按升序。 比较数组:通过equals方法比较数组中元素值是否相等。 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。 具体说明请查看下表: 序号方法和说明 1 public static int binarySearch(Object[] a, Object key) 用
10JQKA
2018/05/09
7980
Arrays工具类的使用与数组中的常见异常(一)
Arrays工具类提供了sort方法,用于对数组进行排序。该方法有两种重载形式:一个接受原始类型数组,另一个接受对象类型数组。这里我们以对象类型数组为例进行说明。
玖叁叁
2023/05/10
3340
Arrays工具类的使用与数组中的常见异常(二)
IndexOutOfBoundsException是一个运行时异常,当试图访问数组中不存在的索引时抛出。例如,当尝试访问一个空数组的第一个元素时,就会抛出IndexOutOfBoundsException。
玖叁叁
2023/05/10
3740
使用Java中Collections工具类和Comparator比较器使用
Collections工具类 介绍 Collections是单列集合的工具类,里面所有的方法都是静态方法,可以对集合进行一些操作。 常用方法(常用方法) 方法 说明 static void shuf
用户9006224
2022/12/21
4380
使用Java中Collections工具类和Comparator比较器使用
SpringBoot框架 类的理解与使用
MyApplication我们班级的第一个注解是@RestController. 这称为构造型注释。它为阅读代码的人和 Spring 提供了该类扮演特定角色的提示。在这种情况下,我们的类是一个 web @Controller,因此 Spring 在处理传入的 web 请求时会考虑它。
郭顺发
2023/07/07
1380
Java集合框架(六)—— Collections工具类
操作集合的工具类Collections   Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。 排序操作   Collections提供了如下几个方法对List集合元素进行排序:   static void reverse(List list);       //反转指定List集合元素的顺序。 static void shuffle(L
10JQKA
2018/05/09
5410
Jersey 2.x Glassfish 中基于 Servlet 的应用
如果你使用的是 Glassfish 作为你应用服务器,你不需要在你的引用中包含引用任何东西,所有你需要的都已经包含进去了。
HoneyMoose
2019/01/30
4730
springboot 启动失败 Failed to determine a suitable driver class
springboot启动报错 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a
翟凤玺
2020/10/29
9.8K0
Java中 Collections工具类的学习
天天都在用Java集合,也偶尔用到了Collections类中的一些方法,但是一直没有对这个工具类进行一个较为系统的学习,今天放假比较无聊,闲来看一看.并且记录一下API.
呼延十
2019/07/01
5080
velocity笔记(二)VelocityTools 中各种工具类的介绍与使用
我们已经知道了velocity的基础知识,现在有一个工具包,VelocityTools
一写代码就开心
2021/09/08
1.2K0
velocity笔记(二)VelocityTools 中各种工具类的介绍与使用

相似问题

failed框架构建失败

15

使用GlassFish 3.1.2.2和Java8的Eclipse中的GlassFish工具

14

部署Acumatica框架工具失败

21

GlassFish 4.1.2更新工具/pkg工具失败-缺少pkg-bootstrap

522

使用完整框架的DotNet CLI工具失败

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文