在Tomcat中部署Appfuse SpringMCV

时间:2015-01-10 08:05:47

标签: tomcat appfuse

我想问一下如何在应用程序服务器中部署应用程序,例如tomcat,Im使用SpringMVC并使用jetty运行,当我在localhost:8080中运行时,它可以工作,但是当在tomcat中使用war进行部署时,url将会如localhost:8080 / app,显示登录,但当控制器调用新页面失败时,请帮帮我

我重现Appfuse的步骤是:

  1. 关注http://appfuse.org/display/APF/AppFuse+QuickStart,运行生成的mvn命令
  2. mvn appfuse:full-source
  3. 直到这一步,当我运行“mvn jetty:run”时,它运行正常,或者我使用“mvn jetty:run-war”创建war并且还有demo.war并且我部署到tomcat仍然可以
  4. 我添加了一些菜单和页面,其中一个是accountStatement.jsp和accountStatementResult.jsp及其控制器。 accountStatement页面选择期间日期,然后点击ext按钮后会出现accountStatement的结果。
  5. accountStatement.jsp的结果如下: accountStatement 您可以在此链接中尝试,我已在amazonaws.ec2服务器中部署: http://ec2-54-175-88-32.compute-1.amazonaws.com:8080/demo/ 用户名是user / user或admin / admin

  6. 我使用提交按钮,在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();
    

    }

  7. 当我使用“mvn jetty:run”从intellij Idea运行时,它运行完美,按下提交按钮后,它将重定向到accountStatementResult页面。

  8. 但是当我创建demo.war并在tomcat中部署它运行错误时,在accountStatement页面和按钮之后,结果是错误。

  9. 我认为错误发生在urlwriter.xml中,我曾在我以前的办公室使用appfuse 1.9创建应用程序,现在我想使用appfus创建和销售自己的应用程序。非常感谢你的帮助。

  10. 我还在google代码上创建了源代码库,如果需要查看完整代码,可以问我密码。谢谢

1 个答案:

答案 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">

我测试并确保两种解决方案都有效。