Java 类位于JBoss 6 WAR WEB-INF/classes文件夹中时出现NoClassDefFoundError

Java 类位于JBoss 6 WAR WEB-INF/classes文件夹中时出现NoClassDefFoundError,java,classpath,war,noclassdeffounderror,jboss6.x,Java,Classpath,War,Noclassdeffounderror,Jboss6.x,我的问题是,我有一个web应用程序作为WAR文件构建并部署到JBoss6。我的servlet无法在我的应用程序中加载类,并抛出NoClassDefFoundError 我确认该类存在于WAR文件的正确位置。我的所有应用程序类都存在于WEB-INF/classes文件夹中,还有我的servlet类,它可以顺利执行。事实上,似乎只有这个类不在类路径上,因为应用程序的其他方面运行得很好 JBoss是在JDK1.6_21上运行的,这个应用程序是用JDK1.6_24构建的,这不应该是一个问题吧 此外,该应

我的问题是,我有一个web应用程序作为WAR文件构建并部署到JBoss6。我的servlet无法在我的应用程序中加载类,并抛出NoClassDefFoundError

我确认该类存在于WAR文件的正确位置。我的所有应用程序类都存在于WEB-INF/classes文件夹中,还有我的servlet类,它可以顺利执行。事实上,似乎只有这个类不在类路径上,因为应用程序的其他方面运行得很好

JBoss是在JDK1.6_21上运行的,这个应用程序是用JDK1.6_24构建的,这不应该是一个问题吧

此外,该应用程序在Eclipse中本地运行良好,当我将WAR文件部署到单独的Tomcat 7和Glassfish 3服务器时,它们都发现这个类没有问题


我不希望任何人立即知道出了什么问题,如果有人之前看到过类似的事情,请分享你的经验,或者如果你有好的技巧或知道深入研究类路径问题的好工具,请分享。

NoClassDefFoundError
表示类已“加载”但无法生成类定义。它通常发生在类的静态初始化中出现异常时。 在AppServers中,我不止一次看到日志文件中没有报告静态初始化期间的异常

检查正在失败的类的静态块和静态属性初始化是否存在异常的潜在原因

我在JBoss和WebSphere中看到的另一个原因是web应用程序正在分发与应用服务器中的库冲突的库(如servlet.jar或其他)。通常通过删除有问题的库或将类加载机制调整为“父级优先”来解决问题


希望这有帮助

它在抱怨什么课程?更有可能的是,JBoss已经在其系统/共享JAR中提供了这个类,并且它正在与您的war中的类发生冲突。我没有解决方案,只是同情用JBoss解决类加载和隔离问题既不有趣也不容易。这是我的类。JBoss不会已经把它打包了,除非他们偷偷溜进我的办公室,在我拿咖啡的时候把它偷走了:)你肯定给了我一些思考的东西。好提示!我会调查并让你知道这是否解决了我的问题。太棒了!关于检查静态初始值设定项,您是对的,有一个属性文件被错误引用,并且有一个NPE被抛出。我从未想过JBoss会假装不记录在类的静态初始化期间发生的异常。谢谢!我认为NoClassDefFoundError意味着该类没有加载。这让人大开眼界。