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

java - spring + hibernate系统访问拒绝

我目前正在为公司开发网站并使用spring和hibernate。该网站即将完成。但是,当我将它部署在虚拟主机中时,它给了我错误:

16:51:39,518 WARN PoolConfig:105 - 读取系统属性被阻止——通过系统属性忽略任何 c3p0 配置!(但是通过 c3p0.properties 文件进行的任何配置仍然可以!) java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1252) 在 java.lang.System .getProperties(System.java:580) 在 com.mchange.v2.c3p0.PoolConfig.(PoolConfig.java:101) 在 com.mchange.v2.c3p0.impl.C3P0ImplUtils.defaultConnectionTester(C3P0ImplUtils.java:283) 在 com .mchange.v2.c3p0。

16:51:45,639 错误 BasicLazyInitializer:165 - Javassist 增强失败:com.xxx.entity.xxx java.security.AccessControlException:在 java.security.AccessControlContext.checkPermission(AccessControlContext.java: 323) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.Class.getProtectionDomain(Class.java:2106) 在 javassist 的 java.security.AccessController.checkPermission(AccessController.java:546)。 util.proxy.ProxyFactory.getDomain(ProxyFactory.java:619) 在 javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501) 在 javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486) 在 javassist .util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422) 在 javassist.util.proxy.ProxyFactory。createClass(ProxyFactory.java:394) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162) at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)在 org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185) 在 org.hibernate.tuple.entity.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:167) 在 org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer .java:77) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java. lang.reflect.构造函数。newInstance(Constructor.java:513) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133) at org.hibernate .tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:80) 在 org.hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:322) 在 org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:485)在 org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:133) 在 org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84) 在 org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:286 ) 在 org.hibernate.cfg.Configuration。buildSessionFactory(Configuration.java:1872) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:753) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:691) at org.springframework .orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1346) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1315) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169) at org.springframework.beans.factory.support .AbstractBeanFactory.getBean(AbstractBeanFactory.java:246) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:168) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java :398) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735)。springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener. java:45) 在 com.caucho.server.http.Application.init(Application.java:1845) 在 com.caucho.server.http.VirtualHost.startApplication(VirtualHost.java:1207) 在 com.caucho.server.http .VirtualHost.getInvocation(VirtualHost.java:1007) 在 com.caucho.server.http.ServletServer.getInvocation(ServletServer.java:1249) 在 com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:343) 在com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274) 在 com.caucho.server.TcpConnection.run(TcpConnection.java:139) 在 java.lang.Thread.run(Thread.java:619) 16:51:45,664 WARN PojoEntityTuplizer:197 - 无法为:com.xxx.entity.xxx org.hibernate.HibernateException 创建代理工厂:Javassist 增强失败: com.hitv.entity.ProductMap 在 org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:169) 在 org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)在 org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185) 在 org.hibernate.tuple.entity.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:167) 在 org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer .java:77) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect。NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.hibernate.tuple.entity .EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133) at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:80) at org .hibernate.tuple.entity.EntityMetamodel.(EntityMetamodel.java:322) 在 org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:485) 在 org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:133) at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84) at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:286) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration. java:1872) 在 org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:753) 在 org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:691) 在 org.springframework.orm.hibernate3 .AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1346) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory。initializeBean(AbstractAutowireCapableBeanFactory.java:1315) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249 ) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246) 在 org.springframework.beans 的 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)。 factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:168) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:398) 在 org.springframework.context.support。AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:735) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245) at org .springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) at com.caucho.server.http.Application.init(Application .java:1845) 在 com.caucho.server.http.VirtualHost.startApplication(VirtualHost.java:1207) 在 com.caucho.server.http.VirtualHost.getInvocation(VirtualHost.java:1007) 在 com.caucho.server。 http.ServletServer.getInvocation(ServletServer.java:1249) 在 com。caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:343) 在 com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274) 在 com.caucho.server.TcpConnection.run(TcpConnection.java: 139) 在 java.lang.Thread.run(Thread.java:619) 原因:java.security.AccessControlException:在 java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 的访问被拒绝 (java.lang.RuntimePermission getProtectionDomain) ) 在 java.security.AccessController.checkPermission(AccessController.java:546) 在 java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 在 java.lang.Class.getProtectionDomain(Class.java:2106) 在 javassist.util .proxy.ProxyFactory.getDomain(ProxyFactory.java:619) 在 javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501) 在 javassist.util。proxy.ProxyFactory.createClass2(ProxyFactory.java:486) 在 javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422) 在 javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394) 在 org.hibernate .proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162) ... 41 更多

我在互联网上搜索了很长时间。似乎是服务器安全策略问题。我有什么方法可以更改框架代码以绕过安全限制吗?我需要根据日志修改哪个文件?

先感谢您!

0 投票
1 回答
667 浏览

java - 是否可以使用 javassist java 核心类进行检测?由引导类加载器加载的类

我想在核心 JDK 5 类的方法上添加一个“insertBefore”。由于某种原因,它不起作用。下面是代码示例:

com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter 与 JDK 捆绑在一起,位于 rt.jar 中。在上面的代码片段之后,我运行了一些强制 XSMessageFormatter 类运行的代码,但我插入的代码从未运行。我只能让它在我自己的课程上工作。此代码作为一个简单的独立应用程序运行。

有任何想法吗?

0 投票
3 回答
10138 浏览

java - 类签名中的“()V”是什么意思?

我用 Javassist 创建了一个没有真正方法的构造函数

当我试图发出这个类的签名时

我明白了

我很困惑“V”是什么意思?我期望要么 public Echo (); 或类似的东西...

0 投票
2 回答
1314 浏览

java - 如何在注入 JVM 之前验证 Java 字节码?

我正在尝试验证“动态”生成的字节码!

我已经进行了几次尝试,一种尝试是在运行时使用 eclipse 编译器编译我的类,另一种是从内存中编译,如此处所述:

从内存编译

第一个结果看起来不错,但我仍然不能 100% 确定根据 JAVA 6 指南和安全测量以及正常的 OOP 模型,验证过程是否真正有效。

关于如何验证字节码的任何更好的方法?

0 投票
1 回答
927 浏览

proxy - 将 javassist 代理字节码写入 .class 文件?

我想反编译一个 javassist 代理以了解 ProxyFactory.makeForwarder 的实际作用。我看到可以将类字节码从 CtClass 写入 OutputStream,但如果以 ProxyFactory.createClass() 开头,则无法弄清楚如何创建 CtClass - 模仿 Hibernate 如何使用 javassist。这是我尝试过的:

这就是结果。

javassist.NotFoundException: javassist.jassist_163.Find2MethodsPerfTest.testProxyToDisk(Find2MethodsPerfTest.java:36) 处的 javassist.ClassPool.get(ClassPool.java:450) 处的 javassist.jassist_163.Product_$$_javassist_0

测试类和产品类在同一个包(javassist.jassist_163)中,fwiw。谢谢你。

0 投票
1 回答
960 浏览

annotations - 我可以使用 Javassist 删除方法的修饰符吗?

每个人。

我有一个类文件。

我想把它改成

我可以使用 Javassist 实现它吗?如何使用 javassist 向类文件的方法添加注释?欢迎任何建议!谢谢

0 投票
2 回答
769 浏览

java - 使用 javassist 用字节码中的方法替换 java 运算符

我的目标

为了能够在运行时检测何时进行比较(或任何其他操作,如 *、-、/、>、<、...

这应该通过使用 Javassist 或 ow2 ASM 编辑类的字节码来实现

必须达到什么

这段代码

必须成为

GreaterThan 将返回与 '>' 完全相同的结果,但也将用于保存比较的数量 然后每次进行比较时都会通知外部类

额外说明

它必须在有手术的地方进行。所以不仅在 if 语句中。

这表示

也必须成为

您对我如何使用 Javassist 或其他库实现这一点有任何建议吗?

我想这与 IFLT、IFGT 等操作码有关

0 投票
1 回答
2137 浏览

java - 使用 Javassist 检测父类的私有方法?

我想使用 Javassist 来检测一个源代码不受我控制的 Java 类(Java 1.6.0_26-b03,Javassist 3.16.1-GA)。

我对 Javassist 比较陌生,但我想我知道它背后的概念。我读了很多关于它的东西,但也许我错过了一些东西。请看下面的,非常简单的代码:

文件 ParentPrivateMethodInstrumentingTest.java:

文件 Parent.java:

文件 Child.java:

当我运行这个程序时,输出是:

所以我的问题是,为什么在 parent() 之前没有行“--”,我认为它已插入到字节码中?

不可能像我在父类的私有方法上尝试过的那样进行代码插入吗?

非常感谢你的帮助!

0 投票
1 回答
553 浏览

variables - 如何在java字节码中修改局部变量的类型

我正在使用 Javassist 重写字节码。我需要将一些局部变量的类型修改为对象。如何使用 Javassist 访问局部变量并更改其类型?

谢谢。

0 投票
1 回答
1294 浏览

java - 如何使用 Javassist 定义具有参数化列表的字段

如何使用 Javassist 定义参数化列表字段?我尝试了以下代码,它不会抱怨未参数化的 List 类,但在给定参数时会导致 CannotCompileException。