简体   繁体   English

运行 java 类时,Tomcat 服务器不会在 Eclipse 中启动。 引起:java.lang.NoClassDefFoundError:org/json/JSONException

[英]Tomcat server won't start in Eclipse when running java class. Caused by: java.lang.NoClassDefFoundError: org/json/JSONException

When trying to run my java class in Eclipse, the Tomcat server won't start.尝试在 Eclipse 中运行我的 java 类时,Tomcat 服务器无法启动。 There are several errors about java.lang.NoClassDefFoundError: org/json/JSONException and java.lang.ClassNotFoundException: org.json.JSONException.关于 java.lang.NoClassDefFoundError: org/json/JSONException 和 java.lang.ClassNotFoundException: org.json.JSONException 有几个错误。 I have imported org.json.JSONException in my project, and have added org.json.jar in my project build path, as an external jar.我在我的项目中导入了 org.json.JSONException,并在我的项目构建路径中添加了 org.json.jar 作为外部 jar。 Org.json.jar is also included in my CLASSPATH environment variable. Org.json.jar 也包含在我的 CLASSPATH 环境变量中。 Any advice is greatly appreciated.任何意见是极大的赞赏。

The console error in Eclipse when attempting to start the server states:尝试启动服务器时 Eclipse 中的控制台错误指出:

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/URL6]]
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:931)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/URL6]]
    at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
    ... 6 more
Caused by: java.lang.NoClassDefFoundError: org/json/JSONException
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Unknown Source)
    at java.lang.Class.getDeclaredFields(Unknown Source)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:137)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:328)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5063)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
    ... 19 more

Project Build Configuration项目构建配置

CLASSPATH类路径

Open the project's Deployment Assembly property page and make sure the jar is set to be deployed as part of the app.打开项目的部署程序集属性页面并确保将 jar 设置为作为应用程序的一部分进行部署。 The CLASSPATH environment variable doesn't affect Tomcat, and you should stop relying on it in general. CLASSPATH 环境变量不会影响 Tomcat,一般情况下您应该停止依赖它。

for me, what worked was this...对我来说,有效的是这个......

in the servlet program, I omitted the forward slash "/" in the annotation declaration在servlet程序中,我在注解声明中省略了正斜杠“/”


@WebServlet("/MyServlet") //correct✔️ @WebServlet("/MyServlet") //正确✔️

public class MyServlet extends HttpServlet{ .公共类 MyServlet 扩展了 HttpServlet{ 。 . . .} .}


@WebServlet("MyServlet") //wrong❌ @WebServlet("MyServlet") //错误❌

public class MyServlet extends HttpServlet{ .公共类 MyServlet 扩展了 HttpServlet{ 。 . . .} .}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Intellij Java:java.lang.NoClassDefFoundError:org/json/JSONException - Intellij Java: java.lang.NoClassDefFoundError: org/json/JSONException JApplet java.lang.NoClassDefFoundError:org / json / JSONException - JApplet java.lang.NoClassDefFoundError: org/json/JSONException 处女座服务器抛出java.lang.NoClassDefFoundError:org / json / JSONException部署Java包时出错 - Virgo Server Throwing java.lang.NoClassDefFoundError: org/json/JSONException Error while deploying a Java package 无法启动tomcat 7:引起:java.lang.NoClassDefFoundError - Unable to start tomcat 7: Caused by: java.lang.NoClassDefFoundError java.lang.NoClassDefFoundError: org/json/JSONObject 当 Java 类在 OAM 服务器上运行时 - java.lang.NoClassDefFoundError: org/json/JSONObject when Java Class runs on OAM Server 原因:java.lang.NoClassDefFoundError:当tomcat / lib下存在类时? - Caused by: java.lang.NoClassDefFoundError : when class exists under tomcat/lib? java.lang.NoClassDefFoundError:org / eclipse / jetty / server / NetworkConnector - java.lang.NoClassDefFoundError: org/eclipse/jetty/server/NetworkConnector Eclipse,Tomcat,JPA-java.lang.NoClassDefFoundError - Eclipse , Tomcat, JPA - java.lang.NoClassDefFoundError java.lang.NoClassDefFoundError: org/glassfish/jersey/internal/inject/Binder 启动 Tomcat 服务器时 - java.lang.NoClassDefFoundError: org/glassfish/jersey/internal/inject/Binder when started Tomcat Server 我的 Eclipse 崩溃了,现在它无法启动 java.lang.NoClassDefFoundError: javax/annotation/PreDestroy - My eclipse crashed and now it won't start java.lang.NoClassDefFoundError: javax/annotation/PreDestroy
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM