Я удалил javax.servlet-api-3.1.0.jar из пути сборки и добавил jakarta.servlet-api-5.0.0.jar.
Я изменил все ссылки на javax.servlet в своем коде:
Код: Выделить всё
//import javax.servlet.*;
//import javax.servlet.http.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
Я использую ant для сборки моего проекта, и Javac успешно создает классы в папке веб-приложений моей установки tomcat10:
Код: Выделить всё
destdir="/var/lib/tomcat10/webapps/${app_version}/WEB-INF/classes"
27 июня 2024 г., 12:34:35.187 СЕРЬЕЗНЫЙ [https-openssl-nio-8080-exec-183]
org.apache.catalina.core.ApplicationContext.log HTMLManager: ошибка
запуск [/ tomcat_app] org.apache.catalina.LifecycleException: не удалось
запустить компонент
[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/tomcat_app]]
в
org. apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:419)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:186)
at
org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1312)
at
org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:656)
at
org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:205)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at
org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:190)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149 )
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:174)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at
org.apache.catalina.filters .HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:129)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at
org.apache .catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:597)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:74)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
at
org.apache.coyote.http11.Http11Processor. service(Http11Processor.java:391)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at
org.apache.coyote.AbstractProtocol$ ConnectionHandler.process(AbstractProtocol.java:896)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread $WrappingRunnable.run(TaskThread.java:61)
на java.base/java.lang.Thread.run(Thread.java:829)
Вызвано:
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet at
java.base/java.lang.ClassLoader.defineClass1 (собственный метод) at
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022)
at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2352)
at
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase. java:800)
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1317)
at
org.apache.catalina.loader.WebappClassLoaderBase. loadClass(WebappClassLoaderBase.java:1165)
в java.base/java.lang.ClassLoader.defineClass1(собственный метод) в
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022) )
at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase .java:2352)
at
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:800)
at
org.apache.catalina.loader.WebappClassLoaderBase .loadClass(WebappClassLoaderBase.java:1317)
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
at java.base/java.lang.ClassLoader .defineClass1(собственный метод) в
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022)
at
java.base/java.security.SecureClassLoader.defineClass( SecureClassLoader.java:174)
at
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2352)
at
org.apache.catalina.loader. WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:800)
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1317)
at
org.apache. catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
в java.base/java.lang.Class.getDeclaredFields0(собственный метод) в
java.base/java.lang.Class.privateGetDeclaredFields (Class.java:3061)
в java.base/java.lang.Class.getDeclaredFields(Class.java:2248) в
org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java :104)
at
org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
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:333)
at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:994)
at
org.apache .catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:304)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4766)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
... еще 33
Вызвано: java.lang.ClassNotFoundException:
javax.servlet.http. HttpServlet в
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353)
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165 )
... еще 67
Весь проект долгий и сложный. Кажется, существует класс, который все еще пытается загрузить javax/servlet/http/HttpServlet.
Как узнать, какой класс или, в более общем смысле, какая часть моего кода или конфигурации является все еще пытаетесь загрузить javax/servlet/http/HttpServletload?
Подробнее здесь: https://stackoverflow.com/questions/786 ... let-http-h