使用maven的jetty插件启动web(spring)项目时,可能会遇到项目启动很慢,甚至可能直接timeout或者报一些其他错误。我们可以根据错误来优化maven中jetty的启动速度。

比如常见的一个错误:No Transaction manager found - if your webapp requires one, please configure one.

这个报错会导致程序启动长时间阻塞着,甚至有一些报错。如图
在这里插入图片描述

解决方法:

1、首先修改pom.xml中jetty插件的配置,增加contextXml项的配置。

<plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>9.3.0.M1</version>
        <configuration>
            <httpConnector>
                <port>8888</port>
            </httpConnector>
            <!-- 本地装载contextXml,来解决未配置事务或数据库造成启动时等待时间过长 -->
            <contextXml>src/main/resources/jetty-context.xml</contextXml>
        </configuration>
    </plugin>

2、在src/main/resources目录增加jetty-context.xml文件,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Call name="setAttribute">
        <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
        <Arg>.*/.*jsp-api-[^/]\.jar$|./.*jsp-[^/]\.jar$|./.*taglibs[^/]*\.jar$</Arg>
    </Call>
</Configure>

另:我创建的项目下没有src/main/resources文件夹,如何解决?
参考:https://www.bbsmax.com/A/pRdB0r9PJn/

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐