I'm beginning grails development with IntelliJ but just cannot make and deploy a newly created grails app to a local or external Tomcat following the procedure described in this answer
The manager app in Tomcat shows that the application is up and running but I always get http 404 when opening the index page. I noticed that it's possible to download the index.gsp file - it just seems that grails isn't initialized correctly:
These are the versions I tried:
These are the detailed steps I took several times, even on different computers, always with same result:
create a new grails app in IntelliJ and launch default run configuration (grails) - so far that's working fine.
set up deployment to a local Tomcat server. I've configured the application server in IntelliJ, creating an artifact (Web Application: Archive or Web Application: Exploded) using the GrailsWeb facet and assigned it to be deployed.
start the local application server and IntelliJ would report that the artifact is deployed successfully
opening the browser will give 404
WHY? What am I doing wrong?
It must be something about the grails plugin in IntelliJ, because I was able to pull an example Java application (spring-petclinic) from github and simply run it in Tomcat without trouble...
Update:
I've noticed that I can manually deploy the war which is generated under target using "Make Grails Web archive". But when I do the same with the war of the artifact under out/... it won't work.
Obviously the latter one wasn't generated correctly: its missing MANIFEST.MF under META-INF and there's also no grails.xml and grails-app under WEB-INF!
Could you please have a look at the facets: Is there something wrong?
I tried many artifact configurations, e.g. this one:
Directory structure generated using the settings above:
Comparing this to the war file generated by grails shows many differences, e.g. the index.gsp is located in the root, not under WEB-INF/grails-app
. And there's also no grails.xml under WEB-INF
C:\prj\gtest5\out\artifacts\gtest5_war_exploded>tree /f
Auflistung der Ordnerpfade
Volumeseriennummer : 2842-D2F0
C:.
│ error.gsp
│ index.gsp
│
├───css
│ errors.css
│ main.css
│ mobile.css
│
├───dbdoc
│ _globalnav.gsp
│ _index.gsp
│ _overview-summary.gsp
│ _stylesheet.gsp
│
├───images
│ │ apple-touch-icon-retina.png
│ │ apple-touch-icon.png
│ │ favicon.ico
│ │ grails_logo.jpg
│ │ grails_logo.png
│ │ leftnav_btm.png
│ │ leftnav_midstretch.png
│ │ leftnav_top.png
│ │ spinner.gif
│ │ springsource.png
│ │
│ └───skin
│ database_add.png
│ database_delete.png
│ database_edit.png
│ database_save.png
│ database_table.png
│ exclamation.png
│ house.png
│ information.png
│ shadow.jpg
│ sorted_asc.gif
│ sorted_desc.gif
│
├───js
│ │ application.js
│ │
│ └───jquery
│ jquery-1.8.0.js
│ jquery-1.8.0.min.js
│
├───layouts
│ main.gsp
│
└───WEB-INF
│ applicationContext.xml
│ sitemesh.xml
│
├───classes
│ │ JQueryResourceTagLib$_closure1.class
│ │ JQueryResourceTagLib$_closure2.class
│ │ JQueryResourceTagLib$_closure2_closure4.class
│ │ JQueryResourceTagLib$_closure2_closure5.class
│ │ JQueryResourceTagLib$_closure2_closure6.class
│ │ JQueryResourceTagLib$_closure2_closure7.class
│ │ JQueryResourceTagLib$_closure3.class
│ │ JQueryResourceTagLib.class
│ │ JQueryService$_closure1.class
│ │ JQueryService$_closure2.class
│ │ JQueryService$_closure3.class
│ │ JQueryService$_closure4.class
│ │ JQueryService.class
│ │ JQueryTagLib$_closure1.class
│ │ JQueryTagLib$_closure1_closure6.class
│ │ JQueryTagLib$_closure2.class
│ │ JQueryTagLib$_closure3.class
│ │ JQueryTagLib$_closure4.class
│ │ JQueryTagLib$_closure5.class
│ │ JQueryTagLib.class
│ │ messages.properties
│ │ messages_cs_CZ.properties
│ │ messages_da.properties
│ │ messages_de.properties
│ │ messages_es.properties
│ │ messages_fr.properties
│ │ messages_it.properties
│ │ messages_ja.properties
│ │ messages_nl.properties
│ │ messages_pl.properties
│ │ messages_pt_BR.properties
│ │ messages_pt_PT.properties
│ │ messages_ru.properties
│ │ messages_sv.properties
│ │ messages_th.properties
│ │ messages_zh_CN.properties
│ │
│ ├───grails
│ │ └───plugin
│ │ ├───cache
│ │ │ │ BlockingCache.class
│ │ │ │ Cacheable.class
│ │ │ │ CacheBeanPostProcessor.class
│ │ │ │ CacheConfigArtefactHandler$CacheConfigGrailsClass.class
│ │ │ │ CacheConfigArtefactHandler$DefaultCacheConfigGrailsClass.class
│ │ │ │ CacheConfigArtefactHandler.class
│ │ │ │ CacheConfiguration.class
│ │ │ │ CacheEvict.class
│ │ │ │ CachePut.class
│ │ │ │ CacheTagLib$_closure1.class
│ │ │ │ CacheTagLib$_closure2.class
│ │ │ │ CacheTagLib.class
│ │ │ │ ConfigBuilder.class
│ │ │ │ ConfigLoader$_sortConfigs_closure1.class
│ │ │ │ ConfigLoader.class
│ │ │ │ GrailsAnnotationCacheOperationSource$DefaultCacheKey.class
│ │ │ │ GrailsAnnotationCacheOperationSource.class
│ │ │ │ GrailsCache.class
│ │ │ │ GrailsCacheAdminService.class
│ │ │ │ GrailsCacheManager.class
│ │ │ │ GrailsConcurrentMapCache.class
│ │ │ │ GrailsConcurrentMapCacheManager.class
│ │ │ │ GrailsValueWrapper.class
│ │ │ │ SerializableByteArrayOutputStream.class
│ │ │ │ SerializableOutputStream.class
│ │ │ │ Timer.class
│ │ │ │
│ │ │ ├───compiler
│ │ │ │ CacheTransformation.class
│ │ │ │
│ │ │ ├───util
│ │ │ │ ClassUtils.class
│ │ │ │
│ │ │ └───web
│ │ │ │ AlreadyGzippedException.class
│ │ │ │ ContentCacheParameters.class
│ │ │ │ GenericResponseWrapper$1.class
│ │ │ │ GenericResponseWrapper.class
│ │ │ │ Header$Type.class
│ │ │ │ Header.class
│ │ │ │ HttpDateFormatter.class
│ │ │ │ PageInfo.class
│ │ │ │ ProxyAwareMixedGrailsControllerHelper.class
│ │ │ │ SerializableCookie.class
│ │ │ │
│ │ │ └───filter
│ │ │ │ AbstractFilter.class
│ │ │ │ CacheExpressionRootObject.class
│ │ │ │ CacheOperationContext.class
│ │ │ │ DefaultWebKeyGenerator.class
│ │ │ │ ExpressionEvaluator.class
│ │ │ │ FilterServletOutputStream.class
│ │ │ │ LazyParamAwareEvaluationContext.class
│ │ │ │ NoOpFilter.class
│ │ │ │ PageFragmentCachingFilter$1.class
│ │ │ │ PageFragmentCachingFilter$2.class
│ │ │ │ PageFragmentCachingFilter$CacheStatus.class
│ │ │ │ PageFragmentCachingFilter.class
│ │ │ │ WebKeyGenerator.class
│ │ │ │
│ │ │ └───simple
│ │ │ MemoryBlockingCache.class
│ │ │ MemoryCacheConfiguration.class
│ │ │ MemoryPageFragmentCachingFilter.class
│ │ │
│ │ ├───databasemigration
│ │ │ │ ChangelogXml2Groovy$_appendAttrs_closure1.class
│ │ │ │ ChangelogXml2Groovy$_appendWithIndent_closure2.class
│ │ │ │ ChangelogXml2Groovy.class
│ │ │ │ DbdocController$_closure1.class
│ │ │ │ DbdocController.class
│ │ │ │ DslBuilder$1.class
│ │ │ │ DslBuilder$_expandExpressions_closure1.class
│ │ │ │ DslBuilder$_extractZipFile_closure3.class
│ │ │ │ DslBuilder$_handleIncludedChangeLog_closure7.class
│ │ │ │ DslBuilder$_processIncludeAll_closure2.class
│ │ │ │ DslBuilder$_processProperty_closure5.class
│ │ │ │ DslBuilder$_processRollback_closure4.class
│ │ │ │ DslBuilder$_setPropertiesFromAttributes_closure6.class
│ │ │ │ DslBuilder.class
│ │ │ │ GormDatabase.class
│ │ │ │ GormDatabaseSnapshotGenerator$_createIdentifierGenerator_closure4.class
│ │ │ │ GormDatabaseSnapshotGenerator$_createSnapshot_closure1.class
│ │ │ │ GormDatabaseSnapshotGenerator$_createSnapshot_closure2.class
│ │ │ │ GormDatabaseSnapshotGenerator$_isIdentityColumn_closure3.class
│ │ │ │ GormDatabaseSnapshotGenerator.class
│ │ │ │ GormDatabaseTypeConverter.class
│ │ │ │ GrailsChange$1.class
│ │ │ │ GrailsChange.class
│ │ │ │ GrailsChangeLogParser$_setChangelogProperties_closure1.class
│ │ │ │ GrailsChangeLogParser.class
│ │ │ │ GrailsClassLoaderResourceAccessor.class
│ │ │ │ GrailsDiffStatusListener.class
│ │ │ │ GrailsPrecondition$1.class
│ │ │ │ GrailsPrecondition.class
│ │ │ │ GroovyAwareStringChangeLogSerializer.class
│ │ │ │ Log4jLogger.class
│ │ │ │ MigrationRunner$_autoRun_closure1.class
│ │ │ │ MigrationRunner.class
│ │ │ │ MigrationUtils$_getDatabase_closure1.class
│ │ │ │ MigrationUtils.class
│ │ │ │ MysqlAwareCreateTableGenerator.class
│ │ │ │ ScriptUtils$_appendToChangelog_closure2.class
│ │ │ │ ScriptUtils$_appendToChangelog_closure2_closure3.class
│ │ │ │ ScriptUtils$_appendToChangelog_closure2_closure4.class
│ │ │ │ ScriptUtils$_executeAndWrite_closure1.class
│ │ │ │ ScriptUtils.class
│ │ │ │
│ │ │ └───dbdoc
│ │ │ AuthorListWriter.class
│ │ │ AuthorWriter.class
│ │ │ ChangeLogListWriter.class
│ │ │ ChangeLogWriter.class
│ │ │ ColumnWriter.class
│ │ │ HTMLListWriter.class
│ │ │ HTMLWriter.class
│ │ │ MemoryDocVisitor.class
│ │ │ PendingChangesWriter.class
│ │ │ PendingSQLWriter.class
│ │ │ RecentChangesWriter.class
│ │ │ TableListWriter.class
│ │ │ TableWriter$_writeCustomHTML_closure1.class
│ │ │ TableWriter.class
│ │ │
│ │ └───webxml
│ │ FilterManager.class
│ │
│ └───org
│ ├───codehaus
│ │ └───groovy
│ │ └───grails
│ │ └───plugins
│ │ └───jquery
│ │ JQueryConfig$_init_closure1.class
│ │ JQueryConfig$_init_closure2.class
│ │ JQueryConfig.class
│ │ JQueryProvider$_doRemoteFunction_closure1.class
│ │ JQueryProvider$_doRemoteFunction_closure2.class
│ │ JQueryProvider$_doRemoteFunction_closure3.class
│ │ JQueryProvider$_doRemoteFunction_closure4.class
│ │ JQueryProvider.class
│ │
│ └───grails
│ └───plugin
│ ├───resource
│ │ │ AggregatedResourceMeta$_buildAggregateResource_closure3.class
│ │ │ AggregatedResourceMeta$_buildAggregateResource_closure3_closure4.class
│ │ │ AggregatedResourceMeta$_containsResource_closure1.class
│ │ │ AggregatedResourceMeta$_isDirty_closure2.class
│ │ │ AggregatedResourceMeta.class
│ │ │ CSSBundleResourceMeta.class
│ │ │ CSSLinkProcessor$_process_closure1.class
│ │ │ CSSLinkProcessor.class
│ │ │ DevModeSanityFilter.class
│ │ │ JavaScriptBundleResourceMeta.class
│ │ │ ProcessingFilter.class
│ │ │ ResourceMeta$_reset_closure1.class
│ │ │ ResourceMeta.class
│ │ │ ResourceModule$_closure1.class
│ │ │ ResourceModule$_getRequiredDispositions_closure3.class
│ │ │ ResourceModule$_newResourceFromArgs_closure2.class
│ │ │ ResourceModule.class
│ │ │ ResourceProcessor$_afterPropertiesSet_closure5.class
│ │ │ ResourceProcessor$_afterPropertiesSet_closure6.class
│ │ │ ResourceProcessor$_canProcessLegacyResource_closure7.class
│ │ │ ResourceProcessor$_canProcessLegacyResource_closure8.class
│ │ │ ResourceProcessor$_defineModuleFromBuilder_closure16.class
│ │ │ ResourceProcessor$_dumpResources_closure21.class
│ │ │ ResourceProcessor$_dumpResources_closure21_closure35.class
│ │ │ ResourceProcessor$_dumpResources_closure21_closure36.class
│ │ │ ResourceProcessor$_dumpResources_closure22.class
│ │ │ ResourceProcessor$_dumpStats_closure20.class
│ │ │ ResourceProcessor$_dumpStats_closure20_closure34.class
│ │ │ ResourceProcessor$_findSyntheticResourceById_closure9.class
│ │ │ ResourceProcessor$_getConfigParamOrDefault_closure23.class
│ │ │ ResourceProcessor$_getResourceMetaForURI_closure10.class
│ │ │ ResourceProcessor$_getResourceMetaForURI_closure10_closure27.class
│ │ │ ResourceProcessor$_getServletContext_closure24.class
│ │ │ ResourceProcessor$_loadModules_closure17.class
│ │ │ ResourceProcessor$_loadModules_closure18.class
│ │ │ ResourceProcessor$_loadModules_closure18_closure30.class
│ │ │ ResourceProcessor$_loadModules_closure18_closure31.class
│ │ │ ResourceProcessor$_loadModules_closure18_closure31_closure32.class
│ │ │ ResourceProcessor$_loadModules_closure18_closure31_closure33.class
│ │ │ ResourceProcessor$_loadModules_closure19.class
│ │ │ ResourceProcessor$_makeFileSystemPathFromURI_closure11.class
│ │ │ ResourceProcessor$_prepareResourceBatch_closure13.class
│ │ │ ResourceProcessor$_prepareResourceBatch_closure14.class
│ │ │ ResourceProcessor$_prepareResourceBatch_closure14_closure28.class
│ │ │ ResourceProcessor$_prepareResourceBatch_closure14_closure29.class
│ │ │ ResourceProcessor$_prepareResourceBatch_closure15.class
│ │ │ ResourceProcessor$_prepareSingleDeclaredResource_closure12.class
│ │ │ ResourceProcessor$_updateDependencyOrder_closure1.class
│ │ │ ResourceProcessor$_updateDependencyOrder_closure2.class
│ │ │ ResourceProcessor$_updateDependencyOrder_closure3.class
│ │ │ ResourceProcessor$_updateDependencyOrder_closure3_closure25.class
│ │ │ ResourceProcessor$_updateDependencyOrder_closure4.class
│ │ │ ResourceProcessor$_updateDependencyOrder_closure4_closure26.class
│ │ │ ResourceProcessor.class
│ │ │ ResourceProcessorBatch.class
│ │ │ ResourceTagLib$_closure1.class
│ │ │ ResourceTagLib$_closure10.class
│ │ │ ResourceTagLib$_closure10_closure17.class
│ │ │ ResourceTagLib$_closure1_closure15.class
│ │ │ ResourceTagLib$_closure2.class
│ │ │ ResourceTagLib$_closure3.class
│ │ │ ResourceTagLib$_closure4.class
│ │ │ ResourceTagLib$_closure5.class
│ │ │ ResourceTagLib$_closure5_closure16.class
│ │ │ ResourceTagLib$_closure6.class
│ │ │ ResourceTagLib$_closure7.class
│ │ │ ResourceTagLib$_closure8.class
│ │ │ ResourceTagLib$_closure9.class
│ │ │ ResourceTagLib$_resolveResourceAndURI_closure12.class
│ │ │ ResourceTagLib$_writeAttrs_closure11.class
│ │ │ ResourceTagLib$__clinit__closure13.class
│ │ │ ResourceTagLib$__clinit__closure14.class
│ │ │ ResourceTagLib.class
│ │ │ URLUtils.class
│ │ │
│ │ ├───mapper
│ │ │ MapperPhase.class
│ │ │ ResourceMapper$_closure1.class
│ │ │ ResourceMapper$_getDefaultExcludes_closure8.class
│ │ │ ResourceMapper$_getDefaultIncludes_closure9.class
│ │ │ ResourceMapper$_getExcludes_closure10.class
│ │ │ ResourceMapper$_getExcludingPattern_closure2.class
│ │ │ ResourceMapper$_getIncludes_closure11.class
│ │ │ ResourceMapper$_getIncludingPattern_closure3.class
│ │ │ ResourceMapper$_getName_closure7.class
│ │ │ ResourceMapper$_getOperation_closure5.class
│ │ │ ResourceMapper$_getPhase_closure4.class
│ │ │ ResourceMapper$_getPriority_closure6.class
│ │ │ ResourceMapper.class
│ │ │ ResourceMappersFactory$_createResourceMappers_closure1.class
│ │ │ ResourceMappersFactory$_createResourceMappers_closure2.class
│ │ │ ResourceMappersFactory$_createResourceMappers_closure2_closure7.class
│ │ │ ResourceMappersFactory$_createResourceMappers_closure3.class
│ │ │ ResourceMappersFactory$_createResourceMappers_closure4.class
│ │ │ ResourceMappersFactory$_createResourceMappers_closure5.class
│ │ │ ResourceMappersFactory$_createResourceMappers_closure6.class
│ │ │ ResourceMappersFactory.class
│ │ │
│ │ ├───module
│ │ │ ModuleBuilder.class
│ │ │ ModuleDeclarationsFactory$_getModuleDeclarations_closure1.class
│ │ │ ModuleDeclarationsFactory$_getModuleDeclarations_closure2.class
│ │ │ ModuleDeclarationsFactory$_getModuleDeclarations_closure3.class
│ │ │ ModuleDeclarationsFactory.class
│ │ │ ModulesBuilder$_invokeMethod_closure1.class
│ │ │ ModulesBuilder.class
│ │ │
│ │ └───util
│ │ HalfBakedLegacyLinkGenerator.class
│ │ ResourceMetaStore$_addResource_closure1.class
│ │ ResourceMetaStore.class
│ │
│ └───resources
│ └───artefacts
│ AbstractResourcesArtefactHandler.class
│ DefaultResourceMapperClass.class
│ DefaultResourcesClass.class
│ ResourceMapperArtefactHandler.class
│ ResourceMapperClass.class
│ ResourcesArtefactHandler.class
│ ResourcesClass.class
│
├───lib
│ ant-1.8.2.jar
│ ant-junit-1.8.2.jar
│ ant-launcher-1.8.2.jar
│ ant-trax-1.7.1.jar
│ antlr-2.7.7.jar
│ aopalliance-1.0.jar
│ asm-3.1.jar
│ aspectjrt-1.6.10.jar
│ aspectjweaver-1.6.10.jar
│ bcmail-jdk14-138.jar
│ bcpg-jdk15-1.45.jar
│ bcprov-jdk15-1.45.jar
│ cglib-2.2.jar
│ commons-beanutils-1.8.3.jar
│ commons-cli-1.2.jar
│ commons-codec-1.5.jar
│ commons-collections-3.2.1.jar
│ commons-dbcp-1.4.jar
│ commons-el-1.0.jar
│ commons-fileupload-1.2.2.jar
│ commons-io-2.1.jar
│ commons-lang-2.6.jar
│ commons-pool-1.5.6.jar
│ commons-validator-1.3.1.jar
│ concurrentlinkedhashmap-lru-1.2_jdk5.jar
│ core-renderer-R8.jar
│ dom4j-1.6.1.jar
│ ecj-3.7.2.jar
│ ehcache-core-2.4.6.jar
│ gant_groovy1.8-1.9.6.jar
│ grails-2.1.1.jar
│ grails-bootstrap-2.1.1.jar
│ grails-core-2.1.1.jar
│ grails-crud-2.1.1.jar
│ grails-datastore-core-1.1.0.RELEASE.jar
│ grails-datastore-gorm-1.1.0.RELEASE.jar
│ grails-datastore-simple-1.1.0.RELEASE.jar
│ grails-docs-2.1.1.jar
│ grails-gdoc-engine-1.0.1.jar
│ grails-hibernate-2.1.1.jar
│ grails-logging-2.1.1.jar
│ grails-plugin-async-2.1.1.jar
│ grails-plugin-codecs-2.1.1.jar
│ grails-plugin-controllers-2.1.1.jar
│ grails-plugin-converters-2.1.1.jar
│ grails-plugin-datasource-2.1.1.jar
│ grails-plugin-domain-class-2.1.1.jar
│ grails-plugin-filters-2.1.1.jar
│ grails-plugin-gsp-2.1.1.jar
│ grails-plugin-i18n-2.1.1.jar
│ grails-plugin-log4j-2.1.1.jar
│ grails-plugin-mimetypes-2.1.1.jar
│ grails-plugin-scaffolding-2.1.1.jar
│ grails-plugin-services-2.1.1.jar
│ grails-plugin-servlets-2.1.1.jar
│ grails-plugin-testing-2.1.1.jar
│ grails-plugin-tomcat-2.1.1.jar
│ grails-plugin-url-mappings-2.1.1.jar
│ grails-plugin-validation-2.1.1.jar
│ grails-resources-2.1.1.jar
│ grails-scripts-2.1.1.jar
│ grails-spring-2.1.1.jar
│ grails-test-2.1.1.jar
│ grails-test-suite-base-2.1.1.jar
│ grails-web-2.1.1.jar
│ grails-webflow-2.1.1.jar
│ grails-wrapper-support-2.1.1.jar
│ groovy-all-1.8.8.jar
│ h2-1.3.164.jar
│ hamcrest-core-1.1.jar
│ hibernate-commons-annotations-3.2.0.Final.jar
│ hibernate-core-3.6.10.Final.jar
│ hibernate-ehcache-3.6.10.Final.jar
│ hibernate-jpa-2.0-api-1.0.1.Final.jar
│ hibernate-validator-4.1.0.Final.jar
│ hsqldb-1.8.0.10.jar
│ itext-2.0.8.jar
│ ivy-2.2.0.jar
│ jansi-1.2.1.jar
│ javassist-3.16.1-GA.jar
│ javax.servlet-api-3.0.1.jar
│ jcl-over-slf4j-1.6.2.jar
│ jline-1.0.jar
│ jna-3.2.3.jar
│ json-simple-1.1.jar
│ jsp-api-2.0.jar
│ jsp-api-2.1.jar
│ jstl-1.1.2.jar
│ jta-1.1.jar
│ jul-to-slf4j-1.6.2.jar
│ junit-4.10.jar
│ liquibase-core-2.0.5.jar
│ log4j-1.2.16.jar
│ ognl-2.7.3.jar
│ org.springframework.uaa.client-1.0.1.RELEASE.jar
│ oro-2.0.8.jar
│ persistence-api-1.0.jar
│ protobuf-java-2.4.1.jar
│ serializer-2.7.1.jar
│ servlet-api-2.4.jar
│ sitemesh-2.4.jar
│ slf4j-api-1.6.2.jar
│ snakeyaml-1.8.jar
│ spring-aop-3.1.2.RELEASE.jar
│ spring-asm-3.1.2.RELEASE.jar
│ spring-aspects-3.1.2.RELEASE.jar
│ spring-beans-3.1.2.RELEASE.jar
│ spring-binding-2.0.8.RELEASE.jar
│ spring-context-3.1.2.RELEASE.jar
│ spring-context-support-3.1.2.RELEASE.jar
│ spring-core-3.1.2.RELEASE.jar
│ spring-expression-3.1.2.RELEASE.jar
│ spring-jdbc-3.1.2.RELEASE.jar
│ spring-jms-3.1.2.RELEASE.jar
│ spring-js-2.0.8.RELEASE.jar
│ spring-orm-3.1.2.RELEASE.jar
│ spring-test-3.1.2.RELEASE.jar
│ spring-tx-3.1.2.RELEASE.jar
│ spring-web-3.1.2.RELEASE.jar
│ spring-webflow-2.0.8.RELEASE.jar
│ spring-webmvc-3.1.2.RELEASE.jar
│ springloaded-core-1.0.6.jar
│ standard-1.1.2.jar
│ tomcat-annotations-api-7.0.30.jar
│ tomcat-api-7.0.30.jar
│ tomcat-catalina-7.0.30.jar
│ tomcat-catalina-ant-7.0.30.jar
│ tomcat-coyote-7.0.30.jar
│ tomcat-embed-core-7.0.30.jar
│ tomcat-embed-jasper-7.0.30.jar
│ tomcat-embed-logging-juli-7.0.30.jar
│ tomcat-embed-logging-log4j-7.0.30.jar
│ tomcat-juli-7.0.30.jar
│ tomcat-servlet-api-7.0.30.jar
│ tomcat-util-7.0.30.jar
│ validation-api-1.0.0.GA.jar
│ xpp3_min-1.1.4c.jar
│
└───tld
c.tld
fmt.tld
grails.tld
spring.tld
It's actually a known issue:
You should use workaround from the first comment:
When you run server, you need to do two things: run
Build
|Make Grails Web Archive
, and then run server's run configuration with created war added as external source.
In case you are not aware of the external source option, check this screenshot.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With