Java Web应用仅在NetBeans工作



我正在使用Spring Web应用程序工作,当我从Netbeans运行它时,一切正常。我的项目完全基于注释,context.xml文件是空的,没有其他XML文件可言。由构建过程产生的战争文件在tomcat Manager网页下罚款,我能够访问登录页面。按下登录按钮后,通常不会将其重定向到主页。我注意到的一件事是,当我在Tomcat Manager中单击我的应用程序时,我被带到Localhost:8080/mdhis_webclient,可以正确显示登录页面。一旦我登录,它就会给我带来404个错误的url localhost:8080/登录名,它是我主控制器中的邮政方法的名称,它执行了登录过程(请注意不再在URL中的WebApp名称(。无论我在URL栏中手动输入什么,已知有效的URL,我都不会获得实际的页面,看来登录过程甚至没有发生。我看了所有的tomcat日志,没有记录任何错误。我确实阅读了其他帖子,但我没有发现类似的症状。我对此完全感到困惑,我什至没有看到我可以在此处发布哪些相关代码。

如果您遇到了这个问题,请提供帮助。

问候

*编辑 *

这是我的applicationInitializer类中的onstartup((方法:

@Override
public void onStartup(ServletContext container) throws ServletException 
{
    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
    ctx.register(ApplicationConfiguration.class);
    ctx.setServletContext(container);
    ContextLoaderListener contextLoaderListener = new ContextLoaderListener(ctx);
    ctx.getServletContext().addListener(contextLoaderListener);
    ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx));
    servlet.setLoadOnStartup(1);
    servlet.addMapping("/");
}

终于在另一个论坛上的帖子中找到了答案:

在您的tomcat的conf/server.xml中添加:

<Context path="" docBase="NameOfYourWar" debug="0" reloadable="true"></Context>

在您的server.xml文件中结束标签之前

这将确保您的上下文在没有root中的战争文件名的情况下加载。替代方案是将您的战争文件重命名为root.war和WebApps中的root文件夹,然后部署您自己的root.war文件。

我可以确认这项工作!

最新更新