我想问一下如何在应用程序服务器中部署应用程序,例如tomcat,Im使用SpringMVC并使用jetty运行,当我在localhost:8080中运行时,它可以工作,但是当在tomcat中使用war进行部署时,url将会如localhost:8080 / app,显示登录,但当控制器调用新页面失败时,请帮帮我
我重现Appfuse的步骤是:
accountStatement.jsp的结果如下: 您可以在此链接中尝试,我已在amazonaws.ec2服务器中部署: http://ec2-54-175-88-32.compute-1.amazonaws.com:8080/demo/ 用户名是user / user或admin / admin
我使用提交按钮,在AccountStatementController.java里面有一些重要的代码如下:
public AccountStatementController() {
setCancelView("redirect:home");
setSuccessView("/accountStatementResult");
}
@RequestMapping(方法= RequestMethod.POST) public String onSubmit( @RequestParam(value =“periodType”,required = false)final String periodType, @RequestParam(value =“datepickerFrom”,required = false)final String datepickerFrom, @RequestParam(value =“datepickerUntil”,required = false)final String datepickerUntil, @RequestParam(value =“months”,required = false)final String months,final RedirectAttributes redirectAttributes, 最终的HttpServletRequest请求) 抛出异常 { String period = datepickerFrom +“ - ”+ datepickerUntil; if(periodType.equals(“monthly”)){ 期间=月; }
redirectAttributes.addFlashAttribute("period", period);
return getSuccessView();
}
当我使用“mvn jetty:run”从intellij Idea运行时,它运行完美,按下提交按钮后,它将重定向到accountStatementResult页面。
但是当我创建demo.war并在tomcat中部署它运行错误时,在accountStatement页面和按钮之后,结果是错误。
我认为错误发生在urlwriter.xml中,我曾在我以前的办公室使用appfuse 1.9创建应用程序,现在我想使用appfus创建和销售自己的应用程序。非常感谢你的帮助。
我还在google代码上创建了源代码库,如果需要查看完整代码,可以问我密码。谢谢
答案 0 :(得分:1)
在accountStatement.jsp中,将表单的“操作”更改为以下之一:
<form:form commandName="account" method="post" action="accountStatement" id="accountForm">
这会生成您要提交给控制器的相对URL。或者您可以指定绝对URL:
<form:form commandName="account" method="post" action="${ctx}/account/accountStatement" id="accountForm">
我测试并确保两种解决方案都有效。