java - 运行 java 类时,Tomcat 服务器不会在 Eclipse 中启动。引起:java.lang.NoClassDefFoundError: org/json/JSONException
问题描述
当试图在 Eclipse 中运行我的 java 类时,Tomcat 服务器不会启动。关于 java.lang.NoClassDefFoundError: org/json/JSONException 和 java.lang.ClassNotFoundException: org.json.JSONException 有几个错误。我在我的项目中导入了 org.json.JSONException,并在我的项目构建路径中添加了 org.json.jar 作为外部 jar。Org.json.jar 也包含在我的 CLASSPATH 环境变量中。任何意见是极大的赞赏。
尝试启动服务器时 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
解决方案
打开项目的 Deployment Assembly 属性页面,并确保将 jar 设置为作为应用程序的一部分进行部署。CLASSPATH 环境变量不会影响 Tomcat,一般情况下您应该停止依赖它。
推荐阅读
- java - 关于微服务的 Oauth2 授权类型 client_credentials 用例
- javascript - 上传图片或选择图片 - Html Django
- python - Python请求库不接受asp net core dev证书
- dynamics-crm - 如何在 microsft Dataverse(通用数据服务)中以固定间隔更新表记录?
- python - Python 使用正则表达式解析更新语句
- json - Shell 脚本不适用于 curl 请求
- c - c 中的分割错误,第 2 周凯撒,cs50x 哈佛课程
- python - 我正在尝试制作棋盘格
- .net - 调用 HttpListener.GetContextAsync() 后如何正确取消请求?
- bash - Bash 如何在第一次发送后不中止的情况下向命名管道写入/读取/读取