我正在使用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文件。
我可以确认这项工作!