【发布时间】:2010-07-08 17:11:46
【问题描述】:
我已经开发了这个小应用程序并在 Jetty 上运行它没有任何问题...
Bug.groovy:
package itsafeature
class Bug {
String name
String description
Priority priority
Project project
static belongsTo = Project
static constraints = {
name(size:10..150)
description(size:25..1500)
project(nullable:false)
priority(nullable:false)
}
String toString() {
return "${priority}:${name}"
}
}
enum Priority {HIGH(5), MEDIUM(3),LOW(1)
private Priority(int val){
value = val
}
private final int value
int value() {
value
}
}
当我使用 Netbeans 直接部署到它的 Grails Jetty 服务器时,这完全符合您的预期。优先级作为字符串写入我的数据库,它可以满足我的需求。
但是,如果我接受该项目并进行“构建”,它会创建应用程序的“生产”构建(我的数据源文件对于所有构建都是相同的),并将其放在我的“webapps”文件夹中本地 tomcat 服务器,我看到以下堆栈跟踪:
SEVERE: Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.ExceptionInInitializerError
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
... SNIP! ...
Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
Caused by: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: Priority(java.lang.String, java.lang.Integer)
at Priority.<clinit>(Priority.groovy:10)
... 2 more
我应该看什么来缩小这个问题的范围?我在 Windows 上只安装了一个 groovy, GROOVY_HOME 指向它,与 GRAILS 相同。 Jetty 是否有自己的这些运行时版本?还是这真的是应用服务器问题?
有一个 grails 命令说“tomcat”,不确定是否与此有关,但我没有使用它
【问题讨论】: