【发布时间】:2013-02-20 23:19:17
【问题描述】:
我的 EJB 项目具有以下结构并使用 maven 打包。它在 core.jar 文件中打包了 ejb。通过将所有接口和 POJO 移动到打包为 jar (core-common.jar) 的单独项目中,远程查找成为可能,然后将其作为依赖项添加到 web 模块中,以使其能够使用它们用于远程 EJB 调用。
├── core.jar
├── app_war
│ ├── META-INF
│ └── WEB-INF
├── lib
└──core-common.jar
当我部署我的应用程序时,当核心尝试实例化任何 POJO 和 core-common.jar 时,我最终会得到 IllegalAccessException - access denied。 POJO 或类都没有私有方法或构造函数。这让我很困惑。
另外让我指出,过去这些 POJO 有其构造函数 protected,在重新分解它以分层 POJO 和接口后,我决定公开。
有谁知道重构后可能导致这种非法访问的原因是什么?该应用程序部署在 Glassfish 上。
【问题讨论】: