我在应用程序服务器上部署的同一 .ear 中有两个不同的存档。一种是 .war,一种是 .jar。我在两个文件中具有相同的包名称
in .jar archive>> com.me.dummy.MyClass
in .war archive>> com.me.dummy.CLientClass
在 com.me.dummy.MyClass
中,我有一个名为 proctectedMethod()
的 protected 方法。在 com.me.dummy.CLientClass 中,我调用 com.me.dummy.MyClass.proctectedMethod() 。
这不会导致任何编译时问题,但在运行时它会抛出 accessError
java.lang.IllegalAccessError
为什么这只在运行时抛出IllegalAccessError
?
谢谢
最佳答案
我相信发生这种情况是因为您的应用程序服务器使用单独的类加载器加载 Web 应用程序。您应该查阅应用程序服务器文档,了解如何使其对整个企业应用程序使用相同的类加载器。
关于Java方法范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752766/