Eu estou tentando configurar uma inicialização Primavera contexto aplicações raiz programaticamente. A razão para a raiz de contexto é que nós queremos o aplicativo para ser acessado a partir localhost:port/{app_name}e ter todos os caminhos do controlador anexar a ele.
Aqui está o arquivo de configuração do aplicativo para a web-app.
@Configuration
public class ApplicationConfiguration {
Logger logger = LoggerFactory.getLogger(ApplicationConfiguration.class);
@Value(${mainstay.web.port:12378})
private String port;
@Value(${mainstay.web.context:/mainstay})
private String context;
private Set<ErrorPage> pageHandlers;
@PostConstruct
private void init(){
pageHandlers = new HashSet<ErrorPage>();
pageHandlers.add(new ErrorPage(HttpStatus.NOT_FOUND,/notfound.html));
pageHandlers.add(new ErrorPage(HttpStatus.FORBIDDEN,/forbidden.html));
}
@Bean
public EmbeddedServletContainerFactory servletContainer(){
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
logger.info(Setting custom configuration for Mainstay:);
logger.info(Setting port to {},port);
logger.info(Setting context to {},context);
factory.setPort(Integer.valueOf(port));
factory.setContextPath(context);
factory.setErrorPages(pageHandlers);
return factory;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
}
Aqui é o controlador de índice para a página principal.
@Controller
public class IndexController {
Logger logger = LoggerFactory.getLogger(IndexController.class);
@RequestMapping(/)
public String index(Model model){
logger.info(Setting index page title to Mainstay - Web);
model.addAttribute(title,Mainstay - Web);
return index;
}
}
A nova raiz da aplicação deve ser de pelo localhost:12378/mainstay, mas ainda está localizado na localhost:12378.
O que estou ausente que está causando Primavera de inicialização para não acrescentar a raiz de contexto antes do mapeamento pedido?













