使用Maven,Jetty9,spring4且没有web.xml的可运行战争

拉格纳尔

我想用Jetty9和Spring4进行一场可战战,并仍将其作为可部署战(类似于Jenkins

war文件是使用Maven构建的,因此maven-war-plugin将主类(WebAppRunner)移到文件树的顶部,并覆盖war内部的所有jetty- * jar,javax * jar和spring-web.jar(可访问)到主类)并在META-INF / MANIFEST.MF中设置主类。

主类是这样启动Jetty的:

ProtectionDomain domain = WebAppRunner.class.getProtectionDomain();
URL location = domain.getCodeSource().getLocation();

WebAppContext context = new WebAppContext();
context.setContextPath( "/" );
context.setWar( location.toExternalForm() );
context.setParentLoaderPriority( true );
context.setConfigurations( new Configuration[] { 
  new AnnotationConfiguration(),
  new WebInfConfiguration(), 
  new WebXmlConfiguration(),
  new MetaInfConfiguration(),
  new PlusConfiguration(), 
  new JettyWebXmlConfiguration() 
} );

Server server = new Server( 8080 );
server.dumpStdErr();
server.setHandler( context );
try {
  server.start();
  server.join();
} catch ( Exception e ) {
  LOG.warn( e );
} 

Jetty本身启动就没有问题,并且在启动期间,WebAppContext会通过war文件中的WEB-INF / lib和WEB-INF / classes文件夹进行扫描获取SpringServletContainerInitializer作为ServletContainerInitializer的实现,而后者又应启动Web应用程序。

但是,AnnotationConfiguration.getNonExcludedInitializers方法找不到任何初始化程序(ServiceLoader返回空的可迭代)。

我在github上创建了一个小型演示项目来演示这一点(它使用MyAnnotationConfiguration覆盖了AnnotationConfiguration,仅添加了日志条目)。您可以使用以下命令进行构建:

mvn clean compile war:exploded antrun:run war:war

并运行:

java -jar target/myapp.war

或获取更多日志记录:

java -Dorg.eclipse.jetty.LEVEL=DEBUG -jar target/myapp.war

这里有一些文章/问题/来源我已经通过看:123456789

马迪斯·派恩(MadisPärn)
  1. org.eclipse.jetty.annotations.AnnotationConfiguration应该作为最后的配置添加,否则WEB-INF / lib目录中的jar不会添加到类路径中
  2. pom.xml中的插件不应位于pluginManagement块中
  3. 删除覆盖弹簧网

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有Spring Security且没有web.xml的Jetty addFilter

来自分类Dev

基于Java的Spring WebApp未运行Jetty9

来自分类Dev

JUnit - 没有可运行的方法

来自分类Dev

使用可运行的jar运行Akka

来自分类Dev

具有依赖项的可运行jar

来自分类Dev

在可运行文件中使用SharedPreferences

来自分类Dev

具有可运行与不具有可运行的线程

来自分类Dev

使用onejar-maven-plugin构建可运行的jar

来自分类Dev

对可运行的Jar使用不同的属性文件,Maven Eclipse

来自分类Dev

生成可运行的jar并使用Maven在其中包含库

来自分类Dev

使用maven-dependency-plugin使用maven 3.1创建可运行的jar不会创建可运行的jar

来自分类Dev

如何在没有XML的spring4中配置“ CommonsMultipartResolver”以上传文件

来自分类Dev

在没有 Maven 码头的情况下从命令行运行战争

来自分类Dev

在打包战争之前在Maven构建阶段运行ant任务?

来自分类Dev

在打包战争之前在Maven构建阶段运行ant任务?

来自分类Dev

将可运行的 Spring Boot jar 部署到 Heroku

来自分类Dev

具有可运行性和结果的FutureTask

来自分类Dev

如何使用可运行对象在Singleton中工作?

来自分类Dev

使用Angular指令动态注入可运行的JavaScript

来自分类Dev

无法在可运行类的kotlin / java中使用applicationContext

来自分类Dev

将Proguard与可运行的JAR文件一起使用

来自分类Dev

Android JUnit4 Instrumentation测试上没有可运行的方法

来自分类常见问题

java.lang.Exception:运行JUnit时没有可运行的方法异常

来自分类Dev

春季运行外部JUnit Jar会导致java.lang.Exception:没有可运行的方法

来自分类Dev

使用Jetty Maven插件部署战争

来自分类Dev

有没有办法控制其他组件的可运行线程?

来自分类Dev

在最终战争中打包一个经过Maven转换的web.xml

来自分类Dev

使用Maven Jetty运行时Web.xml无法解析URI:

来自分类Dev

对可运行对象存储对其自身正在运行的线程的引用有任何警告吗?

Related 相关文章

  1. 1

    具有Spring Security且没有web.xml的Jetty addFilter

  2. 2

    基于Java的Spring WebApp未运行Jetty9

  3. 3

    JUnit - 没有可运行的方法

  4. 4

    使用可运行的jar运行Akka

  5. 5

    具有依赖项的可运行jar

  6. 6

    在可运行文件中使用SharedPreferences

  7. 7

    具有可运行与不具有可运行的线程

  8. 8

    使用onejar-maven-plugin构建可运行的jar

  9. 9

    对可运行的Jar使用不同的属性文件,Maven Eclipse

  10. 10

    生成可运行的jar并使用Maven在其中包含库

  11. 11

    使用maven-dependency-plugin使用maven 3.1创建可运行的jar不会创建可运行的jar

  12. 12

    如何在没有XML的spring4中配置“ CommonsMultipartResolver”以上传文件

  13. 13

    在没有 Maven 码头的情况下从命令行运行战争

  14. 14

    在打包战争之前在Maven构建阶段运行ant任务?

  15. 15

    在打包战争之前在Maven构建阶段运行ant任务?

  16. 16

    将可运行的 Spring Boot jar 部署到 Heroku

  17. 17

    具有可运行性和结果的FutureTask

  18. 18

    如何使用可运行对象在Singleton中工作?

  19. 19

    使用Angular指令动态注入可运行的JavaScript

  20. 20

    无法在可运行类的kotlin / java中使用applicationContext

  21. 21

    将Proguard与可运行的JAR文件一起使用

  22. 22

    Android JUnit4 Instrumentation测试上没有可运行的方法

  23. 23

    java.lang.Exception:运行JUnit时没有可运行的方法异常

  24. 24

    春季运行外部JUnit Jar会导致java.lang.Exception:没有可运行的方法

  25. 25

    使用Jetty Maven插件部署战争

  26. 26

    有没有办法控制其他组件的可运行线程?

  27. 27

    在最终战争中打包一个经过Maven转换的web.xml

  28. 28

    使用Maven Jetty运行时Web.xml无法解析URI:

  29. 29

    对可运行对象存储对其自身正在运行的线程的引用有任何警告吗?

热门标签

归档