问题标签 [javassist]

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 回答
3268 浏览

java - Javassist:如何创建代理的代理?

我正在使用 javassist 创建代理ProxyFactory。创建单个代理时一切正常。

但是,当我将代理对象传递给代理机制时,它会失败

javassist.bytecode.DuplicateMemberException:重复方法:com.mypackage.Bean_$$_javassist_0_$$_javassist_1 中的 setHandler

我正在用这个创建代理:

那么,如何创建代理的代理?

更新:实际问题是每个代理都实现了ProxyObjectwhich definedsetHandler(..)方法。所以第二个代理正在尝试重新定义该方法,而不是在子类中覆盖它。

0 投票
2 回答
411 浏览

class - 动态创建java类并使其可以通过网络访问不同的jvm,即可序列化

我需要动态创建 java 类并使其可以通过网络访问不同的 jvm。我尝试使用反射和 javassist 工具,但没有任何效果。让我解释一下我们使用 Coherence 分布式缓存的场景。它具有跨集群并行进行聚合/过滤的能力。例如,如果一个类有 [动态类] 有数量变量和 getAmount/setAmount 方法。然后,如果我们执行 COHERENCE 查询,它将在整个集群中并行启动进程。

我尝试使用 javassist 和反射在运行时创建类。我可以从单个 JVM 访问它,但是当我尝试从其他 jvm [通过一致性集群]访问同一类时。我遇到了找不到类的异常[因为远程 jvm 不知道这个类]。我可以通过在远程 jvm 上动态创建相同的类并访问这些方法来克服这个问题。但是内置方法/函数的连贯性无法找到该类。有人可以帮我解决这个问题吗

0 投票
1 回答
1961 浏览

java - 在运行时创建带有注释字段的java类

问题是我需要在运行时创建一个这样的类:

在运行时决定字段的数量。

我在看 Javassist,在那里你可以创建一个新类,并向其中添加字段,但我还没有找到注释这些字段的方法。

0 投票
1 回答
16933 浏览

java - 使用 Javassist 向运行时生成的方法/类添加注释

我正在使用Javassist生成一个foo带有方法的类bar,但我似乎找不到向方法添加注释(注释本身不是运行时生成的)的方法。我尝试的代码如下所示:

显然我做错了什么,因为annots它是一个空数组。

这是注释的样子:

0 投票
1 回答
9123 浏览

java - 休眠中的 Javassist 失败:无效的常量类型:60

我正在创建一个 cli 工具来管理现有应用程序。应用程序和测试都构建良好并且运行良好,但尽管我在运行 jar 中存在的 cli 工具时收到 javassist 失败:

因为我知道 jar 在单元和集成测试上运行时很好,我认为这可能是 javassist 的问题,所以我尝试了 cglib。字节码提供程序然后显示为 cglib,但我仍然得到完全相同的堆栈跟踪,其中存在 javassist。

cglib 肯定在类路径中:

我已经尝试过使用休眠 3.4 和 3.5 并得到完全相同的错误。这是 javassist 的问题吗?

更新:我可以在 Eclipse 中成功运行应用程序(右键单击->运行方式->Java 应用程序),但使用 maven 生成的 jar-with-dependencies 失败。我认为不同之处在于 Eclipse javassist 不是检查包含的 jar,而是检查所有的类文件(可能还有一些依赖的 3rd-party jar)。

0 投票
1 回答
3822 浏览

java - Javassist注解问题

我正在尝试使用 javassist 生成我的实体类。一切都很顺利,直到我将 GeneratedValue 注释添加到 Id 字段。@Id 注释工作正常,但是当我添加 @GeneeratedValue 时出现异常。这是我的代码:

这是我得到的例外:

@GeneratedValue 似乎有问题。当我在没有 id 的情况下单独使用它时,我也会得到这个异常。当我使用 eclipse 调试器观察变量值时,我得到了这个

而不是注释值。但对于 Id 注释,它显示一个 javassist 注释对象。

我是 javassist 的新手。谁能帮我?

0 投票
1 回答
1504 浏览

java - Javassist 对比 Java 编译器 API

在我目前正在进行的一个项目中,我需要在运行时生成 Java 类。以后使用这些类时,我还需要避免使用反射。

我一直在寻找当前的解决方案来执行此操作,并找到了 Javassist 和 Java 6 Java Compiler API。

虽然我很困惑:

  1. Javassist 使用什么来生成类?它使用反射还是什么?

  2. 我编写了一些测试代码,发现从源代码生成字节码非常容易,然后从生成的字节码加载类。与此解决方案相比,使用 Javassist 有哪些优势?

0 投票
1 回答
780 浏览

java - 使用 Javassist 编译的类的类路径

正如标题所暗示的,用 Javassist 编译的类的类路径是什么?

我的场景是:A 类是用 Javassist 编译的。B类使用Java Compiler API编译并引用A类。问题是A类对B类不可见......

有任何想法吗?

0 投票
1 回答
1882 浏览

hibernate - introspection - 由 Hibernate (JavassistLazyInitializer) 管理的对象的表名

我想通过自省获得由 Hibernate 管理的对象的表名(惰性)。

我的对象在属性处理程序中包含“org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer”。

我的对象是“mypackage.myObjectDO_ _javassist_2 $ $”类型,不包含“mypackage.myObjectDO”类包含的注释(我寻找注释javax.persistence.Table)。

我能怎么做?

0 投票
1 回答
2326 浏览

struts2 - Weblogic 10 和 Struts 2.x 问题 - Javassist

请帮忙解决这个问题,我要疯了...

我正在尝试使用 EJB 3 和 Struts 2 使用 Weblogic 10 作为应用程序服务器和 IIS 作为 Web 服务器(企业约束)来制作客户端-服务器 Web 应用程序。但是我遇到了无法解决的问题。

使用 Struts 2.2 我在启动服务器时得到以下堆栈跟踪:

但是,Javassist 包在所有其他 Struts 相关库中的 web 类路径(/WEB-INF/lib 目录)中清晰可见,我也可以浏览它的包和类。我还将它放在 CLASSPATH 库和 Weblogic 初始化参数中,但没有任何效果。我不知道该怎么想。这是 Struts 2/Weblogic 集成错误吗?

更奇怪的是,最初我设法让 Struts 2 工作。然后由于某种原因(我真的不知道为什么)它停止了,我无法摆脱那个错误。

谢谢你的帮助。