将Spring Boot Server从Tomcat更改为码头罐扫描仪问题
我尝试在弹簧靴环境中使用firebase Java Admin SDK。 当配置为tomcat时,一切都可以正常工作,这是pom.xml内容。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
更改为码头后,问题发生了。这是pom.xml内容。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jstl</artifactId>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>${firebase-admin.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
春季启动过程中的错误消息是:
[ main] o.e.j.s.h.ContextHandler.application : Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation.
[ main] o.a.tomcat.util.scan.StandardJarScanner : Failed to scan [file:/Users/marksu/.m2/repository/io/grpc/grpc-netty-shaded/1.39.0/grpc-core-1.39.0.jar] from classloader hierarchy
java.io.FileNotFoundException: /Users/marksu/.m2/repository/io/grpc/grpc-netty-shaded/1.39.0/grpc-core-1.39.0.jar (No such file or directory)
at java.util.zip.ZipFile.open(Native Method) ~[na:1.8.0_261]
at java.util.zip.ZipFile.<init>(ZipFile.java:225) ~[na:1.8.0_261]
at java.util.zip.ZipFile.<init>(ZipFile.java:155) ~[na:1.8.0_261]
at java.util.jar.JarFile.<init>(JarFile.java:167) ~[na:1.8.0_261]
at java.util.jar.JarFile.<init>(JarFile.java:131) ~[na:1.8.0_261]
at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:202) ~[apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65) ~[apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49) ~[apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:387) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.processURLs(StandardJarScanner.java:322) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.doScanClassPath(StandardJarScanner.java:272) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:235) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101) [apache-jsp-8.5.70.jar:8.5.70]
at org.springframework.boot.web.embedded.jetty.JasperInitializer.doStart(JasperInitializer.java:89) [spring-boot-2.6.7.jar:2.6.7]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:120) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:975) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:375) [jetty-servlet-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449) [jetty-webapp-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414) [jetty-webapp-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:916) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288) [jetty-servlet-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524) [jetty-webapp-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.Server.start(Server.java:423) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.Server.doStart(Server.java:387) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.springframework.boot.web.embedded.jetty.JettyWebServer.initialize(JettyWebServer.java:123) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.embedded.jetty.JettyWebServer.<init>(JettyWebServer.java:90) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory.getJettyWebServer(JettyServletWebServerFactory.java:447) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory.getWebServer(JettyServletWebServerFactory.java:181) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:182) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:160) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:577) [spring-context-5.3.19.jar:5.3.19]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) [spring-boot-2.6.7.jar:2.6.7]
at tw.idv.marksu.sample.imageloader.SampleJettyApplication.main(SampleJettyApplication.java:37) [classes/:na]
我找不到任何答案来解决此问题。现在我正在尝试解决此错误:
Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation.
我认为如果我可以将org.apache.tomcat.jarscanner带回来,那么一切都可以正常工作。 我可以尝试其他方向吗?
更新:我发现这两个依赖关系有一些问题,如果我需要JSP功能并添加Apache-JSP依赖关系,则发生了异常。
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
</dependency>
I tried to use Firebase Java Admin SDK in Spring Boot environment.
When configuration is Tomcat, everything works fine, here is the pom.xml content.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
After changed to Jetty, problem happened. Here is the pom.xml content.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jstl</artifactId>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>${firebase-admin.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
The error message during Spring Boot start is:
[ main] o.e.j.s.h.ContextHandler.application : Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation.
[ main] o.a.tomcat.util.scan.StandardJarScanner : Failed to scan [file:/Users/marksu/.m2/repository/io/grpc/grpc-netty-shaded/1.39.0/grpc-core-1.39.0.jar] from classloader hierarchy
java.io.FileNotFoundException: /Users/marksu/.m2/repository/io/grpc/grpc-netty-shaded/1.39.0/grpc-core-1.39.0.jar (No such file or directory)
at java.util.zip.ZipFile.open(Native Method) ~[na:1.8.0_261]
at java.util.zip.ZipFile.<init>(ZipFile.java:225) ~[na:1.8.0_261]
at java.util.zip.ZipFile.<init>(ZipFile.java:155) ~[na:1.8.0_261]
at java.util.jar.JarFile.<init>(JarFile.java:167) ~[na:1.8.0_261]
at java.util.jar.JarFile.<init>(JarFile.java:131) ~[na:1.8.0_261]
at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:202) ~[apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65) ~[apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49) ~[apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:387) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.processURLs(StandardJarScanner.java:322) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.doScanClassPath(StandardJarScanner.java:272) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:235) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104) [apache-jsp-8.5.70.jar:8.5.70]
at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101) [apache-jsp-8.5.70.jar:8.5.70]
at org.springframework.boot.web.embedded.jetty.JasperInitializer.doStart(JasperInitializer.java:89) [spring-boot-2.6.7.jar:2.6.7]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:120) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:975) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:375) [jetty-servlet-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449) [jetty-webapp-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414) [jetty-webapp-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:916) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288) [jetty-servlet-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524) [jetty-webapp-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.Server.start(Server.java:423) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.server.Server.doStart(Server.java:387) [jetty-server-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) [jetty-util-9.4.46.v20220331.jar:9.4.46.v20220331]
at org.springframework.boot.web.embedded.jetty.JettyWebServer.initialize(JettyWebServer.java:123) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.embedded.jetty.JettyWebServer.<init>(JettyWebServer.java:90) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory.getJettyWebServer(JettyServletWebServerFactory.java:447) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory.getWebServer(JettyServletWebServerFactory.java:181) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:182) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:160) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:577) [spring-context-5.3.19.jar:5.3.19]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) [spring-boot-2.6.7.jar:2.6.7]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) [spring-boot-2.6.7.jar:2.6.7]
at tw.idv.marksu.sample.imageloader.SampleJettyApplication.main(SampleJettyApplication.java:37) [classes/:na]
I can't find any answer to fix this. Now I'm trying to solve this error:
Warning: No org.apache.tomcat.JarScanner set in ServletContext. Falling back to default JarScanner implementation.
I think if I can bring org.apache.tomcat.JarScanner back, everything should works fine.
Is there any other direction I can try?
Update: I found these two dependency have some problem, if I need JSP feature and add apache-jsp dependency, then exception happened.
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
</dependency>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论