部署到应用服务器但不在本地部署后获取404

时间:2015-02-19 23:23:39

标签: java spring-mvc http-status-code-404 url-mapping tomcat8

我正在使用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。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

代码确实很好看。仔细检查是否存在任何与环境相关的问题会导致bean初始化失败 - 这将导致调度程序servlet失败,从而导致404.常见问题可能是数据库连接被拒绝,类路径冲突,远程应用程序服务器和本地之间的JVM差异。

您应该能够找到一些tomcat日志,以确定远程服务器中是否存在任何问题。