Java Spring on Wildfly在根URL命中时不呈现index.html

Java Spring on Wildfly在根URL命中时不呈现index.html,java,spring,spring-mvc,jboss,Java,Spring,Spring Mvc,Jboss,由于项目需求,我必须将Spring应用程序部署到一个不能运行Tomcat且只能运行WildFly的服务器上。当我在Tomcat上运行一个非常简单的项目时,根URL被点击(localhost:8080),它呈现了我的index.html。由于迁移到WildFly并重构了我的项目结构,localhost:8080不再呈现index.html,但我仍然可以访问其他URL 我尝试在BrassDucks/src/main/webapp/web-INF/jboss-web.xml下实现一个jboss-web

由于项目需求,我必须将Spring应用程序部署到一个不能运行Tomcat且只能运行WildFly的服务器上。当我在Tomcat上运行一个非常简单的项目时,根URL被点击
(localhost:8080)
,它呈现了我的
index.html
。由于迁移到WildFly并重构了我的项目结构,
localhost:8080
不再呈现
index.html
,但我仍然可以访问其他URL

我尝试在
BrassDucks/src/main/webapp/web-INF/jboss-web.xml
下实现一个
jboss-web.xml
文件,如下所示:

<jboss-web>
    <context-root>Brass-Ducks</context-root>
</jboss-web>

并考虑我的代码>控制器.java < /Calp> < /P>

package brass.ducks;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@Configuration
@ComponentScan
@EnableAutoConfiguration
public class ApplicationConfig extends SpringBootServletInitializer{

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

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

    private static Class<ApplicationConfig> applicationClass = ApplicationConfig.class;



}

@RestController
class GreetingController {

    @RequestMapping("/hello/{name}")
    String hello(@PathVariable String name) {
        return "Hello, " + name + "!";
    }
} 
package brass.ducks.application;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/")
public class Controller {

    @RequestMapping("/greet")
    @ResponseBody
    public String greeting() {
        return "Hello, there.";
    }
}
最后,如果相关,我的文件夹结构:


localhost:8080/greet
返回“Hello,there”,而
localhost:8080/Hello/name
返回“Hello name”。如何修复此问题?

根据您的具体配置,应该可以使用以下方法:

@Controller
public class LandingPageController {

@RequestMapping({"/","/home"})
public String showHomePage(Map<String, Object> model) {
    return "/WEB-INF/index.html";   
   }
}
@控制器
公共类着陆页面控制器{
@请求映射({”/“,“/home”})
公共字符串显示主页(地图模型){
返回“/WEB-INF/index.html”;
}
}

这将显式地将
/
映射到
index.html

,具体取决于您的具体配置,大致如下:

@Controller
public class LandingPageController {

@RequestMapping({"/","/home"})
public String showHomePage(Map<String, Object> model) {
    return "/WEB-INF/index.html";   
   }
}
@控制器
公共类着陆页面控制器{
@请求映射({”/“,“/home”})
公共字符串显示主页(地图模型){
返回“/WEB-INF/index.html”;
}
}

这将显式地将
/
映射到
index.html

你能发布你的web.xml文件吗?@GergelyBacso哦,我没有这些文件中的任何一个…好的,这将是Spring为你做的事情。你会考虑简单地添加一个额外的控制器,将<代码> /<代码>路径映射到index .html吗?假设我要改变我的问候方法和我的索引。HTML是在WebCype中的,我会写什么?你能张贴你的Web.xml文件吗?@ GGELLYYBACSO OOH,我没有一个……好吧,那就是春天为你做的事情了。你会考虑简单地添加一个额外的控制器,将<代码> /<代码>路径映射到index .html吗?假设我要改变我的问候方法和我的索引。HTML是在WebCype中的,我会写什么?这会返回页面上的字符串<代码> /WebINF/index。HTML < /C> >而不是实际的HTML页面。你没有配置任何解析器吗?()这将返回页面上的字符串
/WEB-INF/index.html
,而不是实际的html页面。您没有配置任何解析程序吗?()