这些似乎是两个单独的问题:如何集成RESTEasy,以及如何部署到JBoss。
的 高枕无忧: 强> 您提到的RESTEasy的Paypal启动程序已转移到新家。 https://github.com/resteasy/resteasy-spring-boot/blob/master/mds/USAGE.md 最新版本运行良好。 (我不知道自你使用的版本以来发生了什么变化。)
的 JBoss的: 强> 将自托管Spring Boot应用程序转换为在JBoss上运行的应用程序需要几个步骤,并且从您的文章中已经不清楚您已经做出哪些更改。
1)在你的pom.xml中,将包装从jar更改为war。
2)同样在pom.xml中,从试图引入它的任何依赖项中排除spring-boot-starter-tomcat。通常这是spring-boot-starter-web,但是如果你使用resteasy-spring-boot-starter你将从中排除。
<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>
3)改变 main 上课并使其延伸 SpringBootServletInitializer 。
main
SpringBootServletInitializer
4)也在 main 覆盖 configure 方法。 (有些文章省略了这一步 - 它与确保正确扫描组件有关,因此可能有方法配置项目,因此它是可选的。)
configure
public class NameOfMyMainClass extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(NameOfMyMainClass.class); } public static void main(String[] args) { SpringApplication.run(NameOfMyMainClass.class, args); } }
这些步骤在此处详细说明: https://thepracticaldeveloper.com/2018/08/06/how-to-deploy-a-spring-boot-war-in-wildfly-jboss/
从理论上讲,这就是你所需要的一切。但实际上,我从来没有工作过(Spring Boot 2.0.4,JBoss 7.1。)
第一个问题:Spring Boot 2显然需要JBoss 7.直到我浪费了一些JBoss 6之后才开始学习。 第二个问题:即使在升级服务器之后,我的JAX-RS bean也从未运行过。根据以下文章,JBoss 7.1.1没有干净地集成,需要一些额外的解决方法: https://ilya-murzinov.github.io/articles/spring-boot-jboss/
有些文章声称成功,但请注意他们倾向于使用Wildfly,而不是JBoss。 (这也可能是JBoss 7.0没有出现所有这些问题。)因此,如果您正在阅读其中一篇文章,请确保它们使用的是您可以使用的Spring Boot和JBoss版本。