我正在尝试使用mockmvc设置Junit测试.
从这个link – “要么不能使用Servlet API,要么你需要在类路径上提供它”.
我在pom.xml中添加了以下内容但是没有用.任何的想法?
这是跟踪
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.test.context.web.WebDelegatingSmartContextLoader]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:105) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:130) at org.springframework.test.context.ContextLoaderUtils.resolveContextLoader(ContextLoaderUtils.java:118) at org.springframework.test.context.ContextLoaderUtils.buildMergedContextConfiguration(ContextLoaderUtils.java:594) at org.springframework.test.context.ContextLoaderUtils.buildMergedContextConfiguration(ContextLoaderUtils.java:560) at org.springframework.test.context.TestContext.
好的,根据评论更新,所以我把范围改为编译然后似乎通过了找不到类的问题!
最佳答案这是一个常见问题.正如Aniket Thakur所说,容器将在运行时提供所有Java servlet类.但在测试期间,您需要一个罐子来提供它们.您添加到pom中的依赖项只是API:它声明了所有内容但不包含任何实现.所以它无济于事.无论如何,你声明它是“提供”,它对maven说“别担心,我知道它将在classpath”.
您必须添加一个依赖项,以便在测试范围内实现所有Java EE类的实现.在我的项目中,我使用glassfish,即使我后来使用tomcat作为servlet容器,但我曾经发现相同问题的依赖性谷歌搜索:
它应该解决你的NoClassDefFoundError问题. 总结
以上是内存溢出为你收集整理的构造函数抛出异常;嵌套异常是java.lang.NoClassDefFoundError:javax/servlet/ServletContext全部内容,希望文章能够帮你解决构造函数抛出异常;嵌套异常是java.lang.NoClassDefFoundError:javax/servlet/ServletContext所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)