繁体   English   中英

Java Web应用程序仅在Netbeans中运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM