Wildfly 和 springboot 出现“404 - Not found”错误
Posted
技术标签:
【中文标题】Wildfly 和 springboot 出现“404 - Not found”错误【英文标题】:Getting "404 - Not found" error with Wildfly and springboot 【发布时间】:2018-07-19 21:19:18 【问题描述】:您好,我正在尝试通过一个使用 Eclipse 的非常简单的应用程序来学习 Wildfly 和 springboot。 项目名称为springboot-test。 包括主方法类在内的所有类都在同一个包中。
主方法类名为“App”,代码如下:
@SpringBootApplication
@RestController
public class App
@Autowired
private Student student;
public static void main(String[] args)
SpringApplication.run(App.class, args);
@RequestMapping("/index")
public String sayHello()
return "hello from spring boot" + this.student.showAddress();
这里是服务器日志:
11:36:57,281 INFO [org.wildfly.extension.undertow] (ServerService 线程池 -- 68) WFLYUT0021: 注册的 web 上下文: '/springboot-test-0.0.1-SNAPSHOT' 用于服务器'default-server '
11:36:57,301 INFO [org.jboss.as.server] (ServerService 线程池 -- 37) WFLYSRV0010: 已部署“springboot-test-0.0.1-SNAPSHOT.war”(运行时名称:“springboot- test-0.0.1-SNAPSHOT.war")
11:36:57,408 INFO [org.jboss.as.server](控制器引导线程)WFLYSRV0212:恢复服务器
11:36:57,411 INFO [org.jboss.as](控制器引导线程)WFLYSRV0060:Http 管理接口监听http://127.0.0.1:8181/management
11:36:57,412 INFO [org.jboss.as](控制器引导线程)WFLYSRV0051:管理控制台正在监听http://127.0.0.1:8181
11:36:57,412 INFO [org.jboss.as](控制器引导线程)WFLYSRV0025:WildFly Full 11.0.0.Final(WildFly Core 3.0.8.Final)在 11393 毫秒内启动 - 启动了 732 个服务中的 504 个(353服务是惰性的、被动的或按需的)
我访问的网址是:http://localhost:8080/springboot-test/index
【问题讨论】:
您的项目在独立运行时是否工作(我的意思是,在 Wildfly 之外,使用 Spring Boot 应用程序的默认嵌入式 Tomcat 实例)? 您好,是的,它适用于嵌入式 tomcat。然后我只是通过以下方式访问该页面:localhost:8080/index 你找到解决这个问题的方法了吗? 想想,你面临的同样的问题***.com/a/50038209/1450401 @CharlesMorin 我遇到了同样的问题,这是我的问题***.com/a/50038209/1450401 【参考方案1】:由于您使用 wildfly 进行部署,我希望您正在生成 war 文件,并且服务器日志似乎支持我的说法
你有 SpringBootServletInitializer 类吗???如果不是这就是问题
你需要这样的东西
@SpringBootApplication
@RestController
public class ServletInitializer extends SpringBootServletInitializer
public static void main(String[] args)
SpringApplication.run(ServletInitializer.class, args);
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
return application.sources(ServletInitializer.class);
@Override
public void onStartup(ServletContext servletContext) throws ServletException
super.onStartup(servletContext);
@RequestMapping("/index")
public String sayHello()
return "hello from spring boot" + this.student.showAddress();
我不确定在一个类中注释 @SpringBootApplication
和 @RestController
是否有任何问题。但我的建议是分开维护
@RestController
public class Mycontroller
@RequestMapping("/index")
public String sayHello()
return "hello from spring boot" + this.student.showAddress();
【讨论】:
【参考方案2】:您的服务器日志显示:
11:36:57,281 信息 [org.wildfly.extension.undertow] (ServerService 线程池 -- 68) WFLYUT0021:注册的网络上下文: '/springboot-test-0.0.1-SNAPSHOT' 用于服务器'default-server'
它应该可以在以下位置访问: http://localhost:8080/springboot-test-0.0.1-SNAPSHOT/index
如果您想注册您的地址,请将您的 Maven 文件配置为使用 <finalName>$project.artifactId</finalName>
。
【讨论】:
您好,这是否意味着我们必须在部署到 WildFly 服务器之前构建项目? 由于 WildFly 是应用服务器:是的,通常您部署打包的应用程序,请参阅:docs.jboss.org/author/display/WFLY/Application+deployment以上是关于Wildfly 和 springboot 出现“404 - Not found”错误的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 应用程序未部署在 Wildfly 上
未能将 Spring Boot 应用程序部署到 WildFly
Spring boot 和 JBoss 8 Wildfly 日志配置应用