javax.persistence.Persistence.createEntityManagerFactory不能与ClassGuard一起使用

时间:2011-01-27 16:03:10

标签: java jpa obfuscation

我只是看看ClassGuard(虽然我知道一些objection)。

然而,如果没有ClassGuard,我会得到javax.persistence.PersistenceException: [PersistenceUnit: MyPU] class or package not found

当找不到我的@PersistenceUnit(unitName = "MyPU")带注释的类时,异常是由 java.lang.ClassNotFoundException 引起的。

ClassGuard会覆盖类加载器以加载加密的类文件。因此,这可能是一个问题。

我甚至可以将ClassGuard与JPA一起使用吗?

很遗憾,我在网上找不到任何相关信息或邮件列表。因为ClassGuard在这里被推荐了几次,我想我试一试......

感谢
麦克

2 个答案:

答案 0 :(得分:1)

classguard没有您在“异议”链接中提到的问题,因为加密是本机代码。破解的唯一方法是通过本机调试器。但是,通过围绕它们构建良好的许可解决方案并以核心业务逻辑驻留在服务器库中的方式对可分发层进行分层,我认为这不应该是一个问题。

希望您将JVM arg设置为使用ClassGuard类加载器。 java ........ -Djava.system.class.loader = net.jsecurity.classguard.bootstrap.ClassGuard .......

然而,如果你使用重反射并混合加密&没有加密的课程,你可能会遇到麻烦,我正在整理他们。

答案 1 :(得分:0)

所以这就是它最终做的事情。 (扰流板:不是解决方案更多的解决方法。)

我将持久化内容分解到另一个.jar文件中,让ClassGuard不加扰它。工作得很好。