【问题标题】:Java web app only working in NetbeansJava Web 应用程序仅在 Netbeans 中运行
【发布时间】:2018-07-31 03:12:39
【问题描述】:

我正在开发一个 Spring Web 应用程序,当我从 netbeans 运行它时,一切正常。我的项目完全基于注释,context.xml 文件是空的,没有其他 XML 文件可言。构建过程产生的war文件在tomcat管理器网页下部署良好,我可以访问登录页面。按下登录按钮后,通常不会重定向到主页。我注意到的一件事是,当我在 tomcat 管理器中单击我的应用程序时,我被带到 localhost:8080/MDHIS_WebClient ,它正确显示了登录页面。一旦我点击登录,它就会给我一个 URL localhost:8080/login 的 404 错误,这是我的主控制器中执行登录过程的 post 方法的名称(注意 webapp 名称不再在 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("/");
}

【问题讨论】:

    标签: java tomcat deployment http-status-code-404 war


    【解决方案1】:

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

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

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

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

    这将确保您的上下文在没有根目录中的 war 文件名的情况下被加载。另一种方法是将您的war文件重命名为ROOT.war并删除webapps中的ROOT文件夹,然后部署您自己的ROOT.war文件。

    我可以确认这是可行的!

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 1970-01-01
      • 2012-08-06
      • 2011-04-14
      • 2023-03-09
      • 1970-01-01
      • 2017-05-21
      • 2020-08-11
      相关资源
      最近更新 更多