我创建了一个Grails 3.1.1应用程序,该应用程序使用表单来加载包含数据的表格。本地运行,一切正常。但是,当部署到远程Tomcat时,提交表单会导致出现javax.servlet.ServletException
错误。Grails 3应用程序在本地运行,但无法在部署到远程Tomcat时解析视图
典型错误: javax.servlet.ServletException: Could not resolve view with name 'stuckOrders' in servlet with name 'grailsDispatcherServlet'
从stuckOrders.gsp段:
<html>
<head>
<meta name="layout" content="main"/>
<asset:javascript src="application.js"/>
<title>LPP Order Fixer</title>
</head>
<body>
<div id="orders" style="float:left;width:70%;height:90%;">
<g:form name="stuckOrders" controller="lppOrderFixer" action="stuckOrders">
<label>Location: </label>
<input type="radio" id="locationReno" name="location" value="Reno"> Reno
<input type="radio" id="locationGalion" name="location" value="Galion"> Galion
<g:actionSubmit value="Locate Orders" action="stuckOrders"/>
LppOrderFixerController.groovy:
package lpporderfixer
class LppOrderFixerController {
def lppOrderFixerService
def location
def index() {}
def stuckOrders() {
location = Location.valueOf(params?.location)
List stuckOrdersList = lppOrderFixerService.fetchStuckOrders(location)
[stuckOrders:stuckOrdersList]
}
}
UrlMappings.groovy:
package lpporderfixer
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/"(view:"/lpporderfixer/stuckOrders")
"500"(view:'/error')
"404"(view:'/notFound')
}
}
项目视图布局:
我试着在LppOrderFixerController.groovy与render(view: 'stuckOrders', model:[stuckOrders:stuckOrdersList]
更换[stuckOrders:stuckOrdersList]
,似乎没有任何改变。
在本地,应用程序从开始。提交表单然后填充表格,URL更改为http://localhost:8080/lppOrderFixer/stuckOrders
。
在远程Tomcat上,应用程序不在根上下文中,因此它开始于http://<remotehost>:8080/lpporderfixer/
。提交表单会导致错误,网址为http://<remotehost>:8080/lpporderfixer/lppOrderFixer/stuckOrders
。
我花了整整一天的时间试图让这个工作,任何建议将不胜感激。提前致谢!