フォームを使用してデータを含む表をロードするGrails 3.1.1アプリケーションを作成しました。ローカルで実行すると、すべて正常に動作します。ただし、リモートTomcatにデプロイすると、フォームを送信するとjavax.servlet.ServletException
エラーが発生します。Grails 3アプリケーションはローカルで動作しますが、リモートTomcatにデプロイすると表示を解決できません
典型的なエラー:stuckOrders.gspから javax.servlet.ServletException: Could not resolve view with name 'stuckOrders' in servlet with name 'grailsDispatcherServlet'
スニペット:
<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/
で開始します。フォームを送信するとエラーが発生し、URL http://<remotehost>:8080/lpporderfixer/lppOrderFixer/stuckOrders
に送信されます。
私はこれをうまく利用しようと一生懸命に努力しましたが、どんな提案も大変感謝しています。前もって感謝します!