没有JSP支持 /,找不到org.apache.jasper.servlet.jspservlet

发布于 2025-02-05 18:52:16 字数 8822 浏览 2 评论 0原文

我使用了JETTY 10和JAVA 11。还添加了JSP模块及其依赖项。仍在运行码头时,我要低于错误。我已经使用了自定义classloader。

2022-06-09 11:45:08.094:INFO :oejs.Server:main: jetty-10.0.8; built: 2022-02-07T10:34:42.299Z; git: 716c7afd8e40d8f645b32aff06945a249d6eb511; jvm 11.0.14+9-Ubuntu-0ubuntu2.16.04
2022-06-09 11:45:08.127:INFO :oejdp.ScanningAppProvider:main: Deployment monitor [file:///opt/jetty-op/webapps/]
2022-06-09 11:45:10.274:INFO :oejw.StandardDescriptorProcessor:main: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2022-06-09 11:45:10.291:WARN :oejs.BaseHolder:main: Unable to load class org.eclipse.jetty.servlet.listener.ELContextCleaner
java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.listener.ELContextCleaner
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:531)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at com.quickheal.loader.WebAppClassLoader.loadClass(WebAppClassLoader.java:26)
    at org.eclipse.jetty.util.Loader.loadClass(Loader.java:59)
    at org.eclipse.jetty.servlet.BaseHolder.doStart(BaseHolder.java:97)
    at org.eclipse.jetty.servlet.ListenerHolder.doStart(ListenerHolder.java:69)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:382)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:895)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:40)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:516)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:151)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:186)
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:462)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:58)
    at org.eclipse.jetty.util.Scanner$DiscreteListener.pathAdded(Scanner.java:282)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:836)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:802)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:709)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:597)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:158)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:605)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:246)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.server.Server.start(Server.java:469)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
    at org.eclipse.jetty.server.Server.doStart(Server.java:414)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$4(XmlConfiguration.java:1872)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1810)
2022-06-09 11:45:10.293:WARN :oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@16a0ee18{UI.xml,/,file:///tmp/jetty-0_0_0_0-7443-MDM-UI-OP-02_07_68_war-_-any-598330691539841733/webapp/,UNAVAILABLE}{/opt/jetty-op/webapps/webapp/MDM-UI-OP-02.07.68.war}
javax.servlet.UnavailableException: Class loading error for holder org.eclipse.jetty.servlet.listener.ELContextCleaner@4b7dc788{src=DESCRIPTOR:file:///opt/jetty-op/etc/webdefault.xml}
    at org.eclipse.jetty.servlet.BaseHolder.doStart(BaseHolder.java:104)
    at org.eclipse.jetty.servlet.ListenerHolder.doStart(ListenerHolder.java:69)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:382)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:895)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:40)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:516)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:151)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:186)
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:462)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:58)
    at org.eclipse.jetty.util.Scanner$DiscreteListener.pathAdded(Scanner.java:282)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:836)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:802)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:709)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:597)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:158)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:605)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:246)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.server.Server.start(Server.java:469)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
    at org.eclipse.jetty.server.Server.doStart(Server.java:414)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$4(XmlConfiguration.java:1872)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1810)
2022-06-09 11:45:10.504:INFO :oejss.DefaultSessionIdManager:main: Session workerName=node0
2022-06-09 11:45:10.541:INFO :oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@30bce90b{webapp,/webapp,file:///opt/jetty-op/webapps/webapp/,AVAILABLE}{/opt/jetty-op/webapps/webapp}
2022-06-09 11:45:10.568:INFO :oejus.SslContextFactory:main: x509=X509@4bff64c2(qhmdmstore,h=[172.18.42.7],a=[/172.18.42.7],w=[]) for Server@c2db68f[provider=null,keyStore=file:///opt/jetty-op/etc/keystore,trustStore=null]
2022-06-09 11:45:10.646:INFO :oejs.AbstractConnector:main: Started ServerConnector@5b07730f{SSL, (ssl, http/1.1)}{0.0.0.0:7443}
2022-06-09 11:45:10.657:INFO :oejs.Server:main: Started Server@799f10e1{STARTING}[10.0.8,sto=5000] @3083ms

I have used jetty 10 and java 11. Also added jsp module and its dependencies. Still while running jetty i'm getting below error. I have used custom classLoader.

2022-06-09 11:45:08.094:INFO :oejs.Server:main: jetty-10.0.8; built: 2022-02-07T10:34:42.299Z; git: 716c7afd8e40d8f645b32aff06945a249d6eb511; jvm 11.0.14+9-Ubuntu-0ubuntu2.16.04
2022-06-09 11:45:08.127:INFO :oejdp.ScanningAppProvider:main: Deployment monitor [file:///opt/jetty-op/webapps/]
2022-06-09 11:45:10.274:INFO :oejw.StandardDescriptorProcessor:main: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2022-06-09 11:45:10.291:WARN :oejs.BaseHolder:main: Unable to load class org.eclipse.jetty.servlet.listener.ELContextCleaner
java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.listener.ELContextCleaner
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:531)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at com.quickheal.loader.WebAppClassLoader.loadClass(WebAppClassLoader.java:26)
    at org.eclipse.jetty.util.Loader.loadClass(Loader.java:59)
    at org.eclipse.jetty.servlet.BaseHolder.doStart(BaseHolder.java:97)
    at org.eclipse.jetty.servlet.ListenerHolder.doStart(ListenerHolder.java:69)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:382)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:895)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:40)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:516)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:151)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:186)
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:462)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:58)
    at org.eclipse.jetty.util.Scanner$DiscreteListener.pathAdded(Scanner.java:282)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:836)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:802)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:709)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:597)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:158)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:605)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:246)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.server.Server.start(Server.java:469)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
    at org.eclipse.jetty.server.Server.doStart(Server.java:414)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$4(XmlConfiguration.java:1872)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1810)
2022-06-09 11:45:10.293:WARN :oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@16a0ee18{UI.xml,/,file:///tmp/jetty-0_0_0_0-7443-MDM-UI-OP-02_07_68_war-_-any-598330691539841733/webapp/,UNAVAILABLE}{/opt/jetty-op/webapps/webapp/MDM-UI-OP-02.07.68.war}
javax.servlet.UnavailableException: Class loading error for holder org.eclipse.jetty.servlet.listener.ELContextCleaner@4b7dc788{src=DESCRIPTOR:file:///opt/jetty-op/etc/webdefault.xml}
    at org.eclipse.jetty.servlet.BaseHolder.doStart(BaseHolder.java:104)
    at org.eclipse.jetty.servlet.ListenerHolder.doStart(ListenerHolder.java:69)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:382)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:895)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:40)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:516)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:151)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:186)
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:462)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:58)
    at org.eclipse.jetty.util.Scanner$DiscreteListener.pathAdded(Scanner.java:282)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:836)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:802)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:709)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:597)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:158)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:605)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:246)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
    at org.eclipse.jetty.server.Server.start(Server.java:469)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
    at org.eclipse.jetty.server.Server.doStart(Server.java:414)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
    at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$4(XmlConfiguration.java:1872)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1810)
2022-06-09 11:45:10.504:INFO :oejss.DefaultSessionIdManager:main: Session workerName=node0
2022-06-09 11:45:10.541:INFO :oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@30bce90b{webapp,/webapp,file:///opt/jetty-op/webapps/webapp/,AVAILABLE}{/opt/jetty-op/webapps/webapp}
2022-06-09 11:45:10.568:INFO :oejus.SslContextFactory:main: x509=X509@4bff64c2(qhmdmstore,h=[172.18.42.7],a=[/172.18.42.7],w=[]) for Server@c2db68f[provider=null,keyStore=file:///opt/jetty-op/etc/keystore,trustStore=null]
2022-06-09 11:45:10.646:INFO :oejs.AbstractConnector:main: Started ServerConnector@5b07730f{SSL, (ssl, http/1.1)}{0.0.0.0:7443}
2022-06-09 11:45:10.657:INFO :oejs.Server:main: Started Server@799f10e1{STARTING}[10.0.8,sto=5000] @3083ms

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雾里花 2025-02-12 18:52:16
com.quickheal.loader.WebAppClassLoader.loadClass(WebAppClassLoader.java:26)

那是您问题的原因。

您的自定义classloader必须遵循Servlet规范的所有规则,它的WebApp隔离和Jetty的webappClassLoader webappContext

该图层从来没有一个普通的Java Classloader。

请注意,许多使用servlet的库也期望同一类负载器的行为(包括类似的诸如类缓存,权限,servlet约束之类的微妙事物,java.lang.instrument.instrument.classfiletrument.classfiletrytrysformer支持,系统与服务器隔离,倒置,倒置父母的优先级等)

com.quickheal.loader.WebAppClassLoader.loadClass(WebAppClassLoader.java:26)

That is the cause of your issues.

Your custom classloader has to follow all of the rules for both the Servlet Spec and it's WebApp isolation and Jetty's WebAppClassLoader expectations within WebAppContext

That layer is never a normal Java ClassLoader.

Be aware that many libraries that use Servlet also expect behaviors from the same ClassLoader (including subtle things like Class caching, permissions, servlet constraints, java.lang.instrument.ClassFileTransformer support, system vs server isolation, inverted parent priority, etc)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文