[英]Java web app only working in Netbeans
我正在使用Spring Web应用程序,当我从netbeans运行它时,一切都可以正常运行。 我的项目完全基于注释,context.xml文件为空,没有其他XML文件可说。 由构建过程产生的war文件可以在雄猫管理器网页下很好地部署,并且我能够访问登录页面。 按下登录按钮后,通常不会重定向到主页。 我注意到的一件事是,当我在tomcat管理器中单击我的应用程序时,我被带到localhost:8080 / MDHIS_WebClient,它将正确显示登录页面。 一旦我登录,它就会给我一个404错误,URL localhost:8080 / login,这是我执行登录过程的主控制器中post方法的名称(请注意,Web应用程序名称不再位于URL中)。 无论我手动在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文件中,结束标记之前
这将确保您的上下文被加载而根目录中没有war文件名。 另一种方法是将war文件重命名为ROOT.war,然后删除webapps中的ROOT文件夹,然后部署自己的ROOT.war文件。
我可以确认这项工作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.