springboot项目部署JBOSS成功但访问404

近期遇到部署springboot项目到jboss项目,遇到了jboss服务器日志显示部署成功且生成上下文,但是访问出线404。


springboot version:1.5.9.RELEASE
jboss  version:EPA 6.4

猜测是项目虽然部署jboss成功但是jboss无法找到上下文。解决方案如下:
1.pom.xml添加servlet依赖
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <scope>provided</scope>
</dependency>

2 自定义webApplicationInitializer
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

@Configuration
public class WebApplicationInitializerImpl implements WebApplicationInitializer{

    @Override 
    public void onStartup(ServletContext container) throws ServletException {
        WebApplicationContext context = getContext();
 
        Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(context));
        registration.setLoadOnStartup(1);
        registration.addMapping("/*");
    } 
 
    private WebApplicationContext getContext() { 
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.setConfigLocation(ApplicationMain.class.getName());
        return context;
    } 

}
3.把ApplicationMain启动类添加到SpringApplicationBuilder
@SpringBootApplication
public class ApplicationMain extends SpringBootServletInitializer{

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
      return builder.sources(ApplicationMain.class);
   }

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

4 在application.yml文件把该项目的domain指定好,JBOSS容器中如果超过2个springboot项目需要添加。
spring:
  jmx:
      default-domain: leotest
endpoints:
  jmx:
    domain: leotest
    unique-names: true


猜你喜欢

转载自blog.csdn.net/u011160656/article/details/78809239