websphere中的类加载问题

时间:2016-01-21 07:05:41

标签: websphere websphere-6.1

我们有一个生产服务器,它是一个websphere实例,我们将一个jar(比如c.jar已经存在于EAR中并现在覆盖)复制到已经部署为热修复的EAR。 我有一个类A,在同一个jar中引用类B是c.jar,而在加载类A时,类B无法找到并导致NoClassFoundError。 服务器中的热部署已禁用。但是,重新启动后服务器A能够找到B.我们缺少任何属性?为什么没有找到B类虽然存在于同一个jar中,但重启后它能够找到。此外,在复制jar之前,Old c.jar在A类和B类加载时工作正常。我们使用的是6.1

1 个答案:

答案 0 :(得分:0)

当应用程序服务器启动时,它会创建您在WAS JVM实例中部署的应用程序的类文件,以使其在运行时可用。当您浏览应用程序时,其他类将被加载。当您删除/覆盖jar文件时,您正在破坏链接,这就是其他类无法在c.jar中找到类的原因。当您重新启动JVM时,新的类文件将在JVM运行时加载,并且您发现它可用。