【发布时间】:2018-02-15 16:22:20
【问题描述】:
我正在尝试使用我的 gradle 项目运行 junit 测试,但无论测试如何,它们都会抛出以下堆栈跟踪
java.lang.IllegalStateException: 无法加载 ApplicationContext
在 org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
在 org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
在 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
在 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
在 org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
在 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
在 org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
在 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
在 org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
在 org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
在 org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
在 org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
在 org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
在 org.junit.runners.ParentRunner.run(ParentRunner.java:363)
在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:114)
在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57)
在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66)
在 org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
在 sun.reflect.GeneratedMethodAccessor11.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
在 org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
在 org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
在 com.sun.proxy.$Proxy1.processTestClass(未知来源)
在 org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:108)
在 sun.reflect.GeneratedMethodAccessor10.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
在 org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:146)
在 org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:128)
在 org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
在 java.lang.Thread.run(Thread.java:748)
引起:org.springframework.beans.factory.BeanDefinitionStoreException: Parser configuration exception parsing XML from URL [file:etc/applicationContext-taxonomy.xml];嵌套异常是 javax.xml.parsers.ParserConfigurationException:无法使用 XSD 进行验证:您的 JAXP 提供程序 [org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@fd06dcb] 不支持 XML 架构。您是否使用 Apache Crimson 在 Java 1.4 上运行?升级到 Apache Xerces(或 Java 1.5)以获得完整的 XSD 支持。
在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:406)
在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
在 org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader.loadBeanDefinitions(GroovyBeanDefinitionReader.java:236)
在 org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader.loadBeanDefinitions(GroovyBeanDefinitionReader.java:220)
在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
在 org.springframework.test.context.support.GenericGroovyXmlContextLoader.loadBeanDefinitions(GenericGroovyXmlContextLoader.java:49)
在 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:124)
在 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
在 org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108)
在 org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:251)
在 org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
在 org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
... 46 更多
原因:javax.xml.parsers.ParserConfigurationException:无法使用 XSD 验证:您的 JAXP 提供程序 [org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@fd06dcb] 不支持 XML 架构。您是否使用 Apache Crimson 在 Java 1.4 上运行?升级到 Apache Xerces(或 Java 1.5)以获得完整的 XSD 支持。
在 org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:102)
在 org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:71)
在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:429)
在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
... 60 更多
原因:java.lang.IllegalArgumentException:无法识别功能“http://apache.org/xml/features/validation/schema”。
在 org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(未知来源)
在 org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:99)
... 63 更多
我已经看到了一些建议的解决方案,但它们似乎都不起作用。当我在 ant 中运行它们时,我的测试工作正常。我已确保 xerces 使用的是最新版本我还添加了建议
-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
到 JVM 但似乎没有任何效果。
任何建议将不胜感激。我可以根据要求提供更多信息。
** 更新**
进行了以下更改--
测试{
jvmArgs '-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces'
包括“test/src/java/”
testLogging.showStandardStreams = true
minHeapSize = "512m"
maxHeapSize = "1024m"
}
但现在输出如图所示
:compileTestJava (Thread[Task worker for ':',5,main]) 完成。耗时 0.391 秒。 :compileTestGroovy (Thread[Task worker for ':',5,main]) 已启动。 > 任务:compileTestGroovy NO-SOURCE 删除过时的输出文件:C:\Users\edunn\eclipse-workspace\iC\build\classes\groovy\test 文件或目录“C:\Users\edunn\eclipse-workspace\iC\src\test\groovy”,未找到 跳过任务 ':compileTestGroovy',因为它没有源文件,也没有以前的输出文件。 :compileTestGroovy (Thread[Task worker for ':',5,main]) 完成。耗时 0.001 秒。 :processTestResources (Thread[Task worker for ':',5,main]) 已启动。 > 任务:processTestResources NO-SOURCE 删除过时的输出文件:C:\Users\edunn\eclipse-workspace\iC\build\resources\test 文件或目录 'C:\Users\edunn\eclipse-workspace\iC\src\test\resources',未找到 跳过任务“:processTestResources”,因为它没有源文件,也没有以前的输出文件。 :processTestResources (Thread[Task worker for ':',5,main]) 完成。耗时 0.001 秒。 :testClasses (Thread[Task worker for ':',5,main]) 已启动。 > 任务:测试类 跳过任务“:testClasses”,因为它没有任何动作。 :testClasses (Thread[Task worker for ':',5,main]) 完成。耗时 0.0 秒。 :test (Thread[Task worker for ':',5,main]) 已启动。 > 任务:测试 清理了任务 ':test' 的先前输出,因为它没有源文件。 :test (Thread[Task worker for ':',5,main]) 完成。耗时 0.11 秒。 在 25 秒内构建成功 4 个可操作的任务:4 个已执行 VCS Checkout Cache (C:\Users\edunn\eclipse-workspace\iC\.gradle\vcsWorkingDirs) 1 天内未清理
** 更新 2 **
我做了以下改动
测试 { systemProperty 'javax.xml.parsers.DocumentBuilderFactory', 'com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl' systemProperty 'javax.xml.parsers.SAXParserFactory', 'com.sun.org.apache.xerces' 包括“com/compsci/ic/**” testLogging.showStandardStreams = true minHeapSize = "512m" maxHeapSize = "1024m" }这让我更进一步,但我现在得到了以下堆栈跟踪
java.lang.IllegalStateException:无法加载 ApplicationContext 在 org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) 在 org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83) 在 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117) 在 org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) 在 org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287) 在 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) 在 org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 在 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 在 org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 在 org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 在 org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 在 org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) 在 org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) 在 org.junit.runners.ParentRunner.run(ParentRunner.java:363) 在 org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) 在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:114) 在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57) 在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66) 在 org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) 在 sun.reflect.GeneratedMethodAccessor11.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) 在 org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) 在 org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) 在 com.sun.proxy.$Proxy3.processTestClass(未知来源) 在 org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:108) 在 sun.reflect.GeneratedMethodAccessor10.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) 在 org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:146) 在 org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:128) 在 org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 在 java.lang.Thread.run(Thread.java:748) 原因:org.springframework.beans.factory.BeanCreationException:在 URL [file:etc/applicationContext-taxonomy-usg2013.xml] 中定义名称为“baseCorpusInitializerGaap2013”的 bean 创建错误:设置 bean 属性时无法解析对 bean 'tableIdentCorpus' 的引用'tableIdentifierTrainers';嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 URL [file:etc/applicationContext-corpus.xml] 中定义名称为“tableIdentCorpus”的 bean 创建错误:无法创建内部 bean 'com.compsci.ic.classify.corpus .PropertiesFilesMultiTrainer#37e1a955' 类型为 [com.compsci.ic.classify.corpus.PropertiesFilesMultiTrainer],同时设置 bean 属性“multiTrainers”;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为 'com.compsci.ic.classify.corpus.PropertiesFilesMultiTrainer#37e1a955' 在 URL [file:etc/applicationContext-corpus.xml] 中定义的 bean 时出错:不满足的依赖项通过构造函数参数1表示:无法将类型[java.lang.String]的参数值转换为所需类型[[Lorg.springframework.core.io.Resource;]:无法转换类型'java.lang.String'的值到所需类型'org.springframework.core.io.Resource[]';嵌套异常是 java.lang.IllegalArgumentException:无法解析资源位置模式 [classpath:data/corpus/*/*.properties]:类路径资源 [data/corpus/] 无法解析为 URL,因为它不存在 相关原因:org.springframework.beans.factory.UnsatisfiedDependencyException:在 URL [file:etc/applicationContext-corpus.xml] 中定义名称为 'com.compsci.ic.classify.corpus.PropertiesFilesMultiTrainer#37e1a955' 的 bean 创建错误:不满足的依赖项通过构造函数参数1表示:无法将[java.util.ArrayList]类型的参数值转换为所需类型[[Ljava.net.URL;]:无法将'java.util.ArrayList'类型的值转换为所需类型' java.net.URL[]';嵌套异常是 java.lang.IllegalArgumentException:无法检索类路径资源 [ConsolidatedBalanceSheet.properties] 的 URL:类路径资源 [ConsolidatedBalanceSheet.properties] 无法解析为 URL,因为它不存在 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359) 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1492) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1237) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) 在 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128) 在 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60) 在 org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108) 在 org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:251) 在 org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98) 在 org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116) ... 46 更多 原因:org.springframework.beans.factory.BeanCreationException:在 URL [file:etc/applicationContext-corpus.xml] 中定义名称为“tableIdentCorpus”的 bean 创建错误:无法创建内部 bean 'com.compsci.ic.classify.corpus .PropertiesFilesMultiTrainer#37e1a955' 类型为 [com.compsci.ic.classify.corpus.PropertiesFilesMultiTrainer],同时设置 bean 属性“multiTrainers”;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为 'com.compsci.ic.classify.corpus.PropertiesFilesMultiTrainer#37e1a955' 在 URL [file:etc/applicationContext-corpus.xml] 中定义的 bean 时出错:不满足的依赖项通过构造函数参数1表示:无法将类型[java.lang.String]的参数值转换为所需类型[[Lorg.springframework.core.io.Resource;]:无法转换类型'java.lang.String'的值到所需类型'org.springframework.core.io.Resource[]';嵌套异常是 java.lang.IllegalArgumentException:无法解析资源位置模式 [classpath:data/corpus/*/*.properties]:类路径资源 [data/corpus/] 无法解析为 URL,因为它不存在 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:313) 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:122) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1492) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1237) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:552) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351) ... 64 更多 原因:org.springframework.beans.factory.UnsatisfiedDependencyException:错误创建名称为“com.compsci.ic.classify.corpus.PropertiesFilesMultiTrainer#37e1a955”的 bean 在 URL [file:etc/applicationContext-corpus.xml] 中定义:不满足的依赖通过构造函数参数1表示:无法将类型[java.lang.String]的参数值转换为所需类型[[Lorg.springframework.core.io.Resource;]:无法转换类型'java.lang.String'的值到所需类型'org.springframework.core.io.Resource[]';嵌套异常是 java.lang.IllegalArgumentException:无法解析资源位置模式 [classpath:data/corpus/*/*.properties]:类路径资源 [data/corpus/] 无法解析为 URL,因为它不存在 在 org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723) 在 org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1154) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1056) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:299) ... 74 更多我相信我在正确的轨道上
【问题讨论】:
-
你必须通过 jvm 选项来测试 jvm,以防你错过它。
-
你能举个例子吗?我有点困惑,对 gradle 还很陌生