将Spring Boot Server从Tomcat更改为码头罐扫描仪问题

发布于 2025-02-03 19:59:22 字数 9989 浏览 2 评论 0原文

我尝试在弹簧靴环境中使用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 技术交流群。

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文