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