[英]Deploy Spring MVC app to run at root in Tomcat8
我正在尝试在Tomcat8的根目录部署Spring MVC应用程序。 目前,访问我的应用程序的唯一方法是在my_domain_name.com/my_webapp,其中my_webapp是我的war文件的名称; 而我只想访问my_domain_name.com。
我知道关于此主题还有其他类似的问题,但是我已经尝试了一切,仅将war文件重命名为ROOT.war起作用了,但这对我来说并不理想,因为我想从同一服务器上运行多个应用程序。
我的server.xml包括:
<Context path="" docBase="my_webapp" debug="0" reloadable="true">
</Context>
<Host name="my_domain_name.com" appBase="my_webapp"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="my_webapp_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
我在conf目录中有一个ROOT.xml文件:
<Context
docBase="my_webapp"
path=""
reloadable="true"/>
my_webapp中META-INF下的context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/"/>
my_webapp中的配置文件AppInitializer.java:
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext rootContext = new
AnnotationConfigWebApplicationContext();
rootContext.register(AppConfig.class);
container.addListener(new ContextLoaderListener(rootContext));
AnnotationConfigWebApplicationContext dispatcherContext =
new AnnotationConfigWebApplicationContext();
ServletRegistration.Dynamic dispatcher =
container.addServlet("dispatcher", new
DispatcherServlet(dispatcherContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
my_webapp中的配置文件DefaultView:
public class DefaultView extends WebMvcConfigurerAdapter{
@Override
public void addViewControllers( ViewControllerRegistry registry ) {
registry.addViewController( "/" ).setViewName(
"forward:/home.html" );
registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
super.addViewControllers( registry );
}
}
我认为这是所有相关的文件,但是如果您认为还有其他问题,请告诉我。 我不知道我的Spring MVC配置和/或Tomcat配置是否可能有问题。 提前谢谢了。
编辑:这个问题不是重复的-我不是在问如何从不同的上下文中部署多个Web应用程序。 我希望在根目录下正确部署我的Web应用程序,因此我应该只输入www.myapp.com而不是www.myapp.com/myapp。 我不想在不将我的war文件命名为ROOT.war的情况下执行此操作-我尝试添加标签,但这似乎不起作用。 我还创建了一个ROOT.xml,这也无法正常工作。 显然,这个问题不是重复的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.