一尘不染

Jboss EAP上的springBoot应用程序,未放置servlet上下文

spring-boot

我有一个非常简单的spring boot应用程序,我想将其部署到Jboss EAP。这是我的简单应用程序类:

@SpringBootApplication

public class MayurApplication extends SpringBootServletInitializer{

    public static void main(String[] args) {
        SpringApplication.run(MayurApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(applicationClass);
    }

    private static Class<MayurApplication> applicationClass = MayurApplication.class;
}

@RestController
class GreetingController {

    @RequestMapping("/hello/{name}")
    String hello(@PathVariable String name) {
        return "Hello, " + name + "!";
    }
}

而且我的pom.xml也很基础。当我在Tomcat上运行此应用程序时,使用嵌入式Tomcat随Spring
Boot一起提供。只需单击一下,一切都变得像魅力。我可以访问http://localhost:8080/demo/hello/World,它也可以工作。

现在,我试图使其与Jboss EAP兼容,使之脱离spring-boot-starter-
web,从而禁用了Tomcat,并将其转换为war项目。(如http://spring.io/blog/2014/03/07/deploying-
spring-boot-applications文章所述)。

我还补充说:

<dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>javax.servlet-api</artifactId>
                 <scope>provided</scope>
            </dependency>,

因为它在抱怨。

现在,所有这些都可以很好地编译并发动战争。当我将此战争复制到jboss部署时,可以看到它已成功部署在控制台上。但是其余的api
http://localhost:8080/demo/hello/World不能正常工作,并不断在浏览器上引发错误:

JBWEB000068: message /demo/hello/World
JBWEB000069: description JBWEB000124: The requested resource is not available.

我究竟做错了什么?


阅读 434

收藏
2020-05-30

共1个答案

一尘不染

我在JBoss 6.4.0中遇到了类似的问题。和Spring Boot 1.3与Tiles 3结合使用。安装Jboss补丁jboss-eap-6.4.6-patch.zip之后,问题已解决。

修补后,我不需要使用设置server.servlet-path = / *

显然,“ /”在Jboss EAP 6.3上不起作用,但是“ / *”有效。他们似乎已经用wildfly 8修复了它

2020-05-30