簡體   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