I have a 'JacketController' with a method show() trying to render a model to the view worklist.gsp
def show() { LOG.debug("JacketController:show()") render(view:"worklist", model:PatientSearchResult.list()) as HTML }
But every time I call the action from the browser I get the error:
[Could not resolve view with name '/jacket/worklist' in servlet with name 'grailsDispatcherServlet'] with root cause StandardWrapperValve.java 250 javax.servlet.ServletException: Could not resolve view with name /jacket/worklist' in servlet with name 'grailsDispatcherServlet'...
I would think it's telling me worklist.gsp doesn't exist or is in the wrong place but worklist.gsp is in the grails-app/views/jacket directory.
My url mapping looks as follows:
"/jacket" {
controller = { 'jacket' }
action = { GET: 'show' }
}
I don't know if I'm missing a plugin or what but my build.gradle is here:(forgive the formatting)
buildscript { ext { grailsVersion = project.grailsVersion } repositories { mavenLocal() maven { url "https://repo.grails.org/grails/core" } } dependencies { classpath "org.grails:grails-gradle-plugin:$grailsVersion" classpath "org.grails.plugins:hibernate4:5.0.10" classpath "org.grails.plugins:views-gradle:1.0.12" classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.11.2" }} configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> if (details.requested.name == 'log4j') { details.useTarget "org.slf4j:log4j-over-slf4j:1.7.5" } if (details.requested.name == 'commons-logging') { details.useTarget "org.slf4j:jcl-over-slf4j:1.7.5" } } }
version "0.1" group "viops"
apply plugin:"eclipse" apply plugin:"idea" apply plugin:"war" apply plugin:"org.grails.grails-web" apply plugin:"org.grails.plugins.views-json" apply plugin:"org.grails.grails-gsp" apply plugin:"asset-pipeline"
ext { grailsVersion = project.grailsVersion gradleWrapperVersion = project.gradleWrapperVersion }
repositories { mavenLocal() maven { url "https://repo.grails.org/grails/core" } }
dependencyManagement { imports { mavenBom "org.grails:grails-bom:$grailsVersion" } applyMavenExclusions false }
dependencies { //This top section pulls out Grails Logback logging solution and //replaces it with log4j2 // added the new way using Log4j2, yes, spring makes it easy compile "org.springframework.boot:spring-boot-starter-log4j2"
// changed spring-boot-autoconfigure so that it would not // pull in the logback binding/implementation compile('org.springframework.boot:spring-boot-autoconfigure') { exclude group: 'ch.qos.logback', module: 'logback-classic' } compile ('org.springframework.boot:spring-boot-starter-actuator'){ exclude group: 'ch.qos.logback', module: 'logback-classic' } // and finally, added the log4j2 binding/implementation compile "org.apache.logging.log4j:log4j-api:2.5" compile "org.apache.logging.log4j:log4j-core:2.5" compile "org.grails:grails-core" provided "org.springframework.boot:spring-boot-starter-tomcat" compile "org.grails:grails-plugin-url-mappings" compile "org.grails:grails-plugin-rest" compile "org.grails:grails-plugin-codecs" compile "org.grails:grails-plugin-interceptors" compile "org.grails:grails-plugin-services" compile "org.grails:grails-plugin-datasource" compile "org.grails:grails-plugin-databinding" compile "org.grails:grails-plugin-async" compile "org.grails:grails-web-boot" compile "org.grails:grails-logging" compile "org.grails.plugins:cache" compile "org.grails.plugins:hibernate4" compile "org.hibernate:hibernate-ehcache" compile "org.grails.plugins:views-json" console "org.grails:grails-console" profile "org.grails.profiles:rest-api" runtime "com.h2database:h2" testCompile "org.grails:grails-plugin-testing" testCompile "org.grails.plugins:geb" testCompile "org.grails:grails-datastore-rest-client" testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1" testRuntime "net.sourceforge.htmlunit:htmlunit:2.18" }
Can anyone point me in the right direction?
quindimildev posted the answer in the comment.
I should have created an app with the web profile to begin with. So, I created a new project with the web profile and compared the resulting build files with the existing app.
I brought over the dependencies that were missing in the REST profile and commented out a couple that might have conflicted.