javax.persistence.Persistence.createEntityManagerFactory与ClassGuard不兼容

3
我刚才查看了ClassGuard(尽管我知道一些反对意见)。
然而,当使用ClassGuard时,我遇到了javax.persistence.PersistenceException: [PersistenceUnit: MyPU] class or package not found,但是没有使用ClassGuard时我却没有遇到这个问题。
异常是由于在没有找到我的@PersistenceUnit(unitName = "MyPU")注释类时引起的java.lang.ClassNotFoundException
ClassGuard覆盖了类加载器以加载加密的类文件。因此,这可能会成为一个问题。 我能否将ClassGuard与JPA一起使用呢? 不幸的是,我无法在网络上找到任何相关信息或邮件列表。既然ClassGuard在这里被建议使用了几次,我想试一下...
谢谢
Mike

完全猜测,但我希望它能有所帮助,这个线程中的人似乎和你一样遇到了同样的问题。http://seamframework.org/Community/GenerateuiThrowsClassNotFoundException - Mia Clarke
2个回答

1

classguard没有您在“objection”链接中提到的问题,因为加密是在本地代码中完成的。唯一的黑客方式是通过本地调试器。但是,通过围绕它们构建良好的许可解决方案并以这样的方式分层分发,使核心业务逻辑驻留在服务器库中,我想这不应该是太大的问题。

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

然而,如果您使用大量反射并混合加密和未加密的类,可能会遇到麻烦,我目前正在与他们解决这个问题。


0

最终我做了什么呢?(剧透:不是解决方案,而是一种变通方法。)

我将持久化相关的内容分离到另一个.jar文件中,并让ClassGuard不对其进行混淆。效果还不错。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接