tomcat啓動異常:java.lang.NoClassDefFoundError

maven工程,編譯通過,通過tomcat啓動時異常,異常如下:

嚴重: Exception sending context initialized event to listener instance of class framework.ualistner.OpcUaListner
java.lang.NoClassDefFoundError: org/opcfoundation/ua/transport/security/CertificateValidator
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2277)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:811)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1254)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.faw.framework.uaclient.OpcUaClientFactory.getUaClientInstance(OpcUaClientFactory.java:40)
    at com.faw.framework.uaclient.OpcUaClientFactory.getUaClientInstance(OpcUaClientFactory.java:27)
    at framework.ualistner.OpcUaListner.contextInitialized(OpcUaListner.java:44)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.opcfoundation.ua.transport.security.CertificateValidator
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
    ... 21 more

個人遇到這個問題是因爲剛纔是學習maven,引用了一個第三方jar包,但是沒有將第三方jar包加入倉庫裏,後來將缺少的jar包加入倉庫裏面後,就解決了。

PS:java.lang.NoClassDefFoundError發生在編譯時對應的類可用,而運行時在Java的classpath路徑中,對應的類不可用導致的錯誤。一般來說是缺少jar文件,或者jar文件沒有添加到classpath。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章