我正在尝试将Grails 3应用程序部署到Elastic Beanstalk上的Tomcat8实例上,并尝试了在谷歌和Stack Exchange上找到的一些方法,包括将"org.springframework.boot:spring-boot-starter-tomcat“依赖项从”编译“更改为”提供“,但这并不起作用。Elastic Beanstalk将接受war文件,但随后只会显示一个空白页面。
我打开了Grails生成的war文件,发现在基本目录中没有index.jsp文件,WEB-INF下也没有web.xml文件。这两个都存在于我使用Maven web-app原型创建的一个简单的war文件中,它是有效的,所以我有两个问题:
1)是否有人将最新版本的Grails应用程序部署到Tomcat 8?尤其是在Elastic Beanstalk上,尤其是最近?我在谷歌上找到的大多数答案都是旧的,所以我在想,新版本可能会有一些变化。
2)打开并加载WAR文件时,查看Tomcat 8所经历的过程的最佳参考资料是什么?我想,如果我能更深入地挖掘这个过程,我就能找出缺失的部分在哪里。
发布于 2017-04-26 14:15:10
@John Stanford,我发现了同样的问题我的grails版本是3.2.3
我在本地测试了deploy to my tomcat8,发现是我数据源配置导致了这个问题,我的grails应用程序只是一个虚拟应用程序,不需要数据库连接,
log /var/lib/tomcat8/logs/catalina.2017-xx-xx.log如下所示
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grailsCacheFilter': Cannot create inner bean '(inner bean)#7cbf54fc' of type [grails.plugin.cache.web.filter.simple.MemoryPageFragmentCachingFilter] while setting bean property 'filter'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name '(inner bean)#7cbf54fc': Unsatisfied dependency expressed through method 'setUrlMappingsHandlerMapping' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'urlMappingsHandlerMapping': Unsatisfied dependency expressed through method 'setWebRequestInterceptors' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openSessionInViewInterceptor': Cannot resolve reference to bean 'hibernateDatastore' while setting bean property 'hibernateDatastore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateDatastore': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.grails.orm.hibernate.HibernateDatastore]: Constructor threw exception; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:313)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:129)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1486)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1231)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
所以我注释掉了application.yml的production.dataSource.url
environments:
development:
dataSource:
dbCreate: create-drop
url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
test:
dataSource:
dbCreate: update
url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
production:
grails:
serverURL: http://xxx-evn-yyy-zzzz-aws-zone-2.elasticbeanstalk.com
dataSource:
dbCreate: none
#url: jdbc:h2:./prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
properties:
jmxEnabled: true
initialSize: 5
maxActive: 50
minIdle: 5
maxIdle: 25
maxWait: 10000
最后部署到AWS Beanstalk,它就可以工作了!
https://stackoverflow.com/questions/43300065
复制相似问题