1

我的 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 上。

4

1 回答 1

0

经过数小时的痛苦和毫无乐趣的网络挖掘后,我决定core-common.jar使用core. 这解决了它。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>resource-dependencies</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>unpack-dependencies</goal>
                    </goals>
                    <configuration>
                        <includeGroupIds>net.proj-alkaline</includeGroupIds>
                        <includeArtifactIds>core-common</includeArtifactIds>
                        <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                        <includes>**/*</includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2013-02-21T18:14:34.500 回答