fro*_*ion 10 spring jetty spring-security maven-jetty-plugin jetty-9
上下文和设置信息:
问题描述
在Spring的JavaConfig用于引导Spring上下文而不是使用a的项目中,启动jetty 9非常慢web.xml.Jetty似乎在适当的时间内无所事事.这发生在以下行之后:
INFO:oejs.Server:main: jetty-9.2.3.v20140905
Jetty确实最终开始,但与常规的tomcat 7发行版相比,启动需要很长时间.
其他资源
public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
//implementation
}
Run Code Online (Sandbox Code Playgroud)
fro*_*ion 19
这是因为Jetty 9扫描WEB-INF文件夹中的所有Jars以进行注释以启动Web上下文.如果您试图找到解决此问题的方法,您可能已经发现了这一事实.我尝试了几个这样的答案,但从未在他们中找到正确的解决方案.
为了尽可能地消除这种扫描,我们可以定义一个模式,告诉Jetty哪些扫描源和哪些扫描源.这可以通过在maven中设置一些配置,或通过在中设置属性来完成jetty-context.xml.(如果你使用的是maven插件,你需要jetty-context.xml在你的设置中设置Jetty pom.xml)
其他一些对我没用的解决方案(要么没有增加启动时间,要么根本没有正确启动)
带有maven插件的Jetty 8.1.2启动延迟jetty8需要很长时间才能启动
等等
使用这种方法也可以使用jetty-context.xml另一种方式完成正确的解决方案.在Spring应用程序中,我们需要扫描Spring jar,如果你有很多依赖项,那么这一点就已经大大提升了.更好的是,如果你只扫描spring-web罐子.如果您有Spring Security,那么可能还需要包含这些jar.
因此,这里给出了最大加速的模式:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Call name="setAttribute">
<Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
<Arg>.*/spring-security[^/]*\.jar$|.*/spring-web[^/]*\.jar$|.*/classes/.*</Arg>
</Call>
</Configure>
Run Code Online (Sandbox Code Playgroud)
我们排除了不在我们classes文件夹中的WEB-INF任何内容,以及任何不包含给定的正则表达式模式的jar.
希望这有助于某人!
| 归档时间: |
|
| 查看次数: |
8252 次 |
| 最近记录: |