背景:整理开发过程中的异常问题
java.lang.Exception: No tests found matching
一般出现在新导入的工程中。在sts中通过open project的方式导入工程后,运行test用例,报No tests found matching错误。
根因是build path问题。解决方案:
1 查看jdk版本,更新到目前的版本
2 删除项目中的junit包,右键 Build Path, addLibraay, 添加Junit4,在build path中通过add library的方式添加junit
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testMessageProducer], {ExactMatcher:fDisplayName=testMessageProducer(com.jdjr.fmq.demo.ProducerTest)], {LeadingIdentifierMatcher:fClassName=com.jdjr.fmq.demo.ProducerTest,fLeadingIdentifier=testMessageProducer]] from org.junit.internal.requests.ClassRequest@27973e9b
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:35)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:74)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:525)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.determineCommonAncestor
这种错误一般是jar包冲突导致的。
解决办法:根据异常查找冲突的jar包,然后点击pom文件——Dependency Hierarchy 查找相关的jar包,会看到omitted for conflict with的相关信息。在导入的jar包中exclude即可。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.5.RELEASE</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
</exclusions>
</dependency>
java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.determineCommonAncestor(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:682) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:575) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1350) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:358) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:327) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:437) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:624) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:120) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60) at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100) at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:248) at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContextInternal(CacheAwareContextLoaderDelegate.java:) at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:91) at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:122) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:312) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
com.alibaba.fastjson.JSONException
com.alibaba.fastjson.JSONException: syntax error, expect {, actual int, pos 176
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:155) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.deserialze(ASMJavaBeanDeserializer.java:31) ~[fastjson-1.1.27.jar:na]
at Fastjson_ASM_ProducerPolicy_4.deserialze(Unknown Source) ~[na:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:471) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.deserializer.DefaultObjectDeserializer.parseMap(DefaultObjectDeserializer.java:239) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(MapDeserializer.java:61) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(MapDeserializer.java:47) ~[fastjson-1.1.27.jar:na]
at Fastjson_ASM_TopicConfig_1.deserialze(Unknown Source) ~[na:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:471) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.deserializer.DefaultObjectDeserializer.parseMap(DefaultObjectDeserializer.java:239) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(MapDeserializer.java:61) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(MapDeserializer.java:47) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:471) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:211) ~[fastjson-1.1.27.jar:na]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:166) ~[fastjson-1.1.27.jar:na]
at com.jdjr.fmq.client.cluster.ClusterManager.updateCluster(ClusterManager.java:234) [fmq-client-core-2.2.5-SNAPSHOT.jar:na]
at com.jdjr.fmq.client.cluster.ClusterManager.doStart(ClusterManager.java:101) [fmq-client-core-2.2.5-SNAPSHOT.jar:na]
at com.jdjr.fmq.registry.util.Service.start(Service.java:34) [registry-util-2.2.5-SNAPSHOT.jar:na]
jar包冲突导致的,排查下jar包。
org.xml.sax.SAXParseException: SchemaLocation: schemaLocation 值 '
org.xml.sax.SAXParseException: SchemaLocation: schemaLocation 值 ' http://www.springframework.org/schema/jdbc <br>http://www.springframework.org/schema/jdbc/spring-jdbc.xsd <br><br>http://www.springframework.org/schema/aop ' 必须具有偶数个 URI。
原因:命名空间url对没有成对出现
xsi:schemaLocation属性的值由多个URI引用对组成,两个URI之间以空白符分隔。第一个URI是名称空间的名字,第二个URI给出模式文档的位置,模式处理器将从这个位置读取模式文档,该模式文档的目标名称空间必须与第一个URI相匹配。
java.lang.IllegalStateException: Failed to load ApplicationContext
遇到这种错误,不必慌张,主要看Cause by后面的原因
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' defined in class path resource [spring/spring-shiro.xml]: Cannot resolve reference to bean 'securityManager' while setting bean property 'securityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityManager' defined in class path resource [spring/spring-shiro.xml]: Cannot resolve reference to bean 'shiroCacheManager' while setting bean property 'cacheManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroCacheManager' defined in class path resource [spring/spring-shiro.xml]: Initialization of bean failed; nested exception is org.springframework.beans.FatalBeanException: Error initializing bean [shiroCacheManager]; nested exception is org.apache.shiro.cache.CacheException: org.apache.shiro.config.ConfigurationException: Unable to obtain input stream for cacheManagerConfigFile [classpath:/spring/ehcache.xml]
如上,标红的部分,提示找不到路径,原因是
classpath:/spring/ehcache.xml中多了一个根路径,去掉即可。