我正在使用Spring @RestController构建Web服务。在本地测试时,一切都很好。但是,在将应用程序部署到远程应用程序服务器之后,我在访问同一端点时收到404。这是我的代码:
@RestController
public class HelloRestController
{
@RequestMapping( value = "/hello", method = RequestMethod.GET )
public String hello()
{
return "hello";
}
}
这是我的网络应用初始化程序。注意:我没有web.xml文件。
public class MyApplicationInitializer implements WebApplicationInitializer
{
@Override
public void onStartup( ServletContext servletContext ) throws ServletException
{
AnnotationConfigWebApplicationContext ctx =
new AnnotationConfigWebApplicationContext();
servletContext.addListener( new ContextLoaderListener( ctx ) );
ctx.register( WebApplicationConfig.class, ApplicationConfig.class );
ctx.setServletContext( servletContext );
Dynamic dispatcher =
servletContext.addServlet( "SpringServlet", new DispatcherServlet( ctx ) );
dispatcher.addMapping( "/" );
dispatcher.setLoadOnStartup( 1 );
}
}
当我将应用程序本地部署到Tomcat-8.0.15并点击" localhost:8080 / myApp / hello"时,它返回" hello"。但是,在将应用程序部署到远程应用程序服务器(也是Tomcat 8)之后,尝试访问同一端点时,我得到了404。
提前感谢您的帮助!
答案 0 :(得分:1)
代码确实很好看。仔细检查是否存在任何与环境相关的问题会导致bean初始化失败 - 这将导致调度程序servlet失败,从而导致404.常见问题可能是数据库连接被拒绝,类路径冲突,远程应用程序服务器和本地之间的JVM差异。
您应该能够找到一些tomcat日志,以确定远程服务器中是否存在任何问题。