没有JSP支持 /,找不到org.apache.jasper.servlet.jspservlet
我使用了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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那是您问题的原因。
您的自定义classloader必须遵循Servlet规范的所有规则,它的WebApp隔离和Jetty的
webappClassLoader
webappContext
该图层从来没有一个普通的Java Classloader。
请注意,许多使用servlet的库也期望同一类负载器的行为(包括类似的诸如类缓存,权限,servlet约束之类的微妙事物,
java.lang.instrument.instrument.classfiletrument.classfiletrytrysformer
支持,系统与服务器隔离,倒置,倒置父母的优先级等)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 withinWebAppContext
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)