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