2013-02-05 148 views
1

我试过在linux pc上用tomcat部署我的grails应用程序,一切正常。如果我尝试在IBM AS400部署与码头同一应用程序,我得到一个非常长的堆栈跟踪:在Jetty上部署Grails战争给ConcurrentModificationException

org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.ExceptionInInitializerError 
at org.codehaus.groovy.grails.web.context.GrailsContextLoader.initWebApplicationContext(GrailsContextLoader.java:118) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:733) 
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:233) 
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1222) 
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:676) 
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:455) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183) 
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491) 
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53) 
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604) 
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398) 
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552) 
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:63) 
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53) 
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91) 
at org.eclipse.jetty.server.Server.doStart(Server.java:260) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.eclipse.jetty.start.Main.invokeMain(Main.java:457) 
at org.eclipse.jetty.start.Main.start(Main.java:602) 
at org.eclipse.jetty.start.Main.main(Main.java:82) 

... 

Caused by:              
java.lang.ExceptionInInitializerError 
at java.lang.J9VMInternals.initialize(J9VMInternals.java:222) 
at java.lang.Class.forNameImpl(Native Method) 
at java.lang.Class.forName(Class.java:136) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure2.class$(DataSourceGrailsPlugin.groovy) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure2.$get$$class$org$apache$commons$dbcp$BasicDataSource(DataSourceGrailsPlugin.groovy) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure2.doCall(DataSourceGrailsPlugin.groovy:151) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1071) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1073) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:721) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin.invokeMethod(DataSourceGrailsPlugin.groovy) 
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1136) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:721) 
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44) 
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1136) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure1_closure8.doCall(DataSourceGrailsPlugin.groovy:69) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1071) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.Closure.call(Closure.java:415) 
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:3649) 
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1408) 
at org.codehaus.groovy.runtime.dgm$171.invoke(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure1.doCall(DataSourceGrailsPlugin.groovy:69) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:231) 
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure1.doCall(DataSourceGrailsPlugin.groovy) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1071) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.Closure.call(Closure.java:415) 
at groovy.lang.Closure.call(Closure.java:409) 
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:736) 
at grails.spring.BeanBuilder.beans(BeanBuilder.java:569) 
at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:511) 
at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:528) 
at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:120) 
at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:156) 
at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:127) 
at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:121) 
at org.codehaus.groovy.grails.web.context.GrailsContextLoader.initWebApplicationContext(GrailsContextLoader.java:104) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:733) 
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:233) 
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1222) 
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:676) 
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:455) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183) 
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491) 
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53) 
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604) 
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398) 
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552) 
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:63) 
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53) 
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91) 
at org.eclipse.jetty.server.Server.doStart(Server.java:260) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215) 
at java.security.AccessController.doPrivileged(AccessController.java:202) 
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.eclipse.jetty.start.Main.invokeMain(Main.java:457) 
at org.eclipse.jetty.start.Main.start(Main.java:602) 
at org.eclipse.jetty.start.Main.main(Main.java:82) 
Caused by: 
java.util.ConcurrentModificationException 
at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:59) 
at java.sql.DriverManager.getDrivers(DriverManager.java:407) 
at org.apache.commons.dbcp.BasicDataSource.<clinit>(BasicDataSource.java:57) 
at java.lang.J9VMInternals.initializeImpl(Native Method) 
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200) 
at java.lang.Class.forNameImpl(Native Method) 
at java.lang.Class.forName(Class.java:136) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure2.class$(DataSourceGrailsPlugin.groovy) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure2.$get$$class$org$apache$commons$dbcp$BasicDataSource(DataSourceGrailsPlugin.groovy) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure2.doCall(DataSourceGrailsPlugin.groovy:151) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1071) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1073) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:721) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin.invokeMethod(DataSourceGrailsPlugin.groovy) 
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1136) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:721) 
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44) 
at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1136) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure1_closure8.doCall(DataSourceGrailsPlugin.groovy:69) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1071) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.Closure.call(Closure.java:415) 
at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:3649) 
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1408) 
at org.codehaus.groovy.runtime.dgm$171.invoke(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271) 
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure1.doCall(DataSourceGrailsPlugin.groovy:69) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:231) 
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) 
at org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin$_closure1.doCall(DataSourceGrailsPlugin.groovy) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
at java.lang.reflect.Method.invoke(Method.java:599) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1071) 
at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:901) 
at groovy.lang.Closure.call(Closure.java:415) 
at groovy.lang.Closure.call(Closure.java:409) 
at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:736) 
at grails.spring.BeanBuilder.beans(BeanBuilder.java:569) 
at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:511) 
at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:528) 
at org.codehaus.groovy.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:120) 
at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:156) 
at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:127) 
at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:121) 
at org.codehaus.groovy.grails.web.context.GrailsContextLoader.initWebApplicationContext(GrailsContextLoader.java:104) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:733) 
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:233) 
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1222) 
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:676) 
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:455) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183) 
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491) 
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53) 
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604) 
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398) 
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552) 
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:63) 
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53) 
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91) 
at org.eclipse.jetty.server.Server.doStart(Server.java:260) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215) 
at java.security.AccessController.doPrivileged(AccessController.java:202) 
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138) 

搜索互联网并没有止跌回升任何有用的东西。任何帮助解决这个问题将不胜感激。我正在使用Grails版本2.0.3和Jetty版本7.6.3。

这里是我的Grails的应用数据源配置:

dataSource { 
     dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', '' 
     pooled = true 
     url = "jdbc:as400://localhost;naming=system;libraries=*LIBL;errors=full" 
     driverClassName = "com.ibm.as400.access.AS400JDBCDriver" 
     username = "user" 
     password = "pass" 
     dialect = org.hibernate.dialect.DB2400Dialect.class 
} 

它可以帮助注意,我现在用的是systemitools plugin Grails的。

更新:我删除了所有其他的web应用,使该矿将是唯一的web应用程序运行时启动码头和它工作得很好。问题似乎是在grails应用程序之前启动了另一个webapp。

+0

不确定你的意思是所有的AS400s更多(不是约10年)。仍然可以发布你的数据源配置(减去明显的私人信息) –

+0

@Gareth 400不是我的选择媒介,但我没有得到报酬做出这些选择。我将不得不删除一大堆stacktrace来发布我的配置,否则我将没有空间。 – Weezle

+0

不要误解我的意思......使用AS400(iSeries,System/i或IBM今年以来称之为的东西:)没有任何问题: –

回答

0

我至少发现了一个变通。如果我在我的数据源中更改数据库驱动程序以使用db2而不是as400(并相应地更改url),那么一切都很好。我曾尝试将Web应用程序转换为Grails,希望能解决问题,但事实并非如此。直到我切换到使用db2驱动程序而不是as400驱动程序。

com.ibm.db2.jdbc.app.DB2Driver 

使用db2驱动程序的多个应用程序很好。一些使用db2的应用程序和一个使用as400的应用程序很好。使用as400驱动程序的多个应用程序不正常。

我还不确定这是为什么。如果有人有想法,请发表评论。

1

没有Spring创建数据源。 这违背了Servlet规范的规则。

让Spring只引用您在webapp容器中定义的JNDI数据源。

1)真正的服务器端/容器DataSource

安装服务器端JNDI参考实际javax.sql.DataSource,叫它任何你想要的(在这个例子中,我们把它叫做jdbc/myContainerDS

使用在http://wiki.eclipse.org/Jetty/Howto/Configure_JNDI_Datasource

2)的WEB-INF/web.xml中的resource-ref

必须的文件web.xml中设置<resource-ref>参考(这是servlet规范中必需的部分,即某些webapp容器无法遵循)。再次使用上面的文档来获得帮助。

3)的Spring bean参考提供的DataSource

设置弹簧侧豆引用在服务器端的JNDI数据源的JNDI。

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="jdbc/myContainerDS"/> 
    <property name="lookupOnStartup" value="false"/> 
    <property name="cache" value="true"/> 
    <property name="proxyInterface" value="javax.sql.DataSource"/> 
</bean> 
+0

请参阅我的更新。看起来好像我的问题可能是由于在Jetty中同时启动了两个Grails应用程序而引起的。你认为你的解决方案能解决这个问题吗? – Weezle

+0

让服务器在服务器级初始化JNDI可能会解决问题。 –

+0

我让我的webapp使用JNDI DataSource自己工作,但是当我将其他应用程序添加回jetty时,我得到的错误与之前一样。 – Weezle