关于org.springframework.test.web.servlet.htmlunit.webdriver.WebConnectionHtmlUnitDriver的实例源码的问题就给大家分享到
关于org.springframework.test.web.servlet.htmlunit.webdriver.WebConnectionHtmlUnitDriver的实例源码的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet、javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet、maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter、org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- org.springframework.test.web.servlet.htmlunit.webdriver.WebConnectionHtmlUnitDriver的实例源码
- java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
- javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet
- maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码
org.springframework.test.web.servlet.htmlunit.webdriver.WebConnectionHtmlUnitDriver的实例源码
@Before public void setUp() throws Exception { driver = mockmvcHtmlUnitDriverBuilder .webAppContextSetup(context) .withDelegate(new WebConnectionHtmlUnitDriver(browserVersion.CHROME)) .contextpath("") .build(); }
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
今天朋友发了个maven项目给我看,问我为什么启动不了。说实话,一直用Jfinal都快不会用spring了… 还是决定看看。
接收了文件,是maven构建的,打开eclipse,导入maven项目,然后部署到tomcat,启动tomcat,就报错了:“java.lang.ClassNotFoundException: org.springframework.web. servlet.DispatcherServlet”,错误信息如下图:
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
很明显的第一反应就是没有SpringMVC的包,于是检查pom.xml,发现没有问题,spring web mvc包是正确引入了的,查看Maven Dependencies,发现也是正常的,打开jar包,也没有问题,web.xml配置也没有问题…
我去,难道jar包版本问题,于是部署了更高版本的jar包,并且还试过配置更高的JDK版本,依然报错,不能启动…
于是google,发现大部分人都是说没有导入jar包,没有部署成功,可是jar包我导入了,也配置正确了。
就在这时,突然看到有个人说tomcat是否部署成功,于是立刻查看网站部署的文件夹,发现WEB-INF下根本没有lib文件夹…
原因找到了,但是为什么没有正确的部署呢,突然想到有个叫“Deployment Assembly”的配置,马上打开项目属性,找到该栏配置,果不其然,Maven Dependencies果然没有配置到WEB-INF/lib下,于是立刻配置,如下步骤:
在项目上右键properties(应该是最后一项),打开如下界面
Add -> Java Build Path Entries -> Next -> Maven Dependencies -> Finish -> Ok,配置完后如下图:

完成后再次启动tomcat,Perfect,就搞定了!
本文转载自: Maven构建SpringMVC环境报错“java.lang.ClassNotFoundException: org.springframework.web.servlet. DispatcherSe
PS:的确是这样的,因为对比正常项目之后就会发现,的确是少了那一项
javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet
如何解决javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet
您可能会觉得这是一个重复的问题,但没有一个具有相同标题的问题能解决我的问题。我正在使用 Jersey 3.0 在 Eclipse 中创建一个 RESTful Web 服务,我使用 Tomcat 9.0 作为我的服务器。
解决方法
Jersey 3.x 使用 Servlet 5.0,现在使用 Jakarta 命名。所有 javax.servlet
包装现在都已更改为 jakarta.servlet
。泽西岛 ServletContainer
现在扩展 jakarta.servlet.http.HttpServlet
;它不再是 javax
。第一个使用 Jakarta 的 Tomcat 是 Tomcat 10.x; Tomcat 9.x 仍然使用 javax.servlet
包装。所以如果你想使用 Jersey 3.x,那么你应该将你的 Tomcat 升级到 10.x。
maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
使用 maven 将项目部署到 tomcat 容器,启动的时候报如下错误:
解决 Setting property''source'' to ''org.eclipse.jst.jee.server 的问题
http://blog.csdn.net/z69183787/article/details/19911935
[java] view plain copy
- 严重: Exception starting filter charsetFilter
- java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
- at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
- at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
- at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
- at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
- at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
- at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
- at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
- at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
- at org.apache.catalina.startup.Embedded.start(Embedded.java:825)
- at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
- at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
- at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
- at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
- at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
- at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
- at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
- at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
- at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
- at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
- at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
- at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:483)
- at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
- at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
- at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
- at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
- 五月 29, 2015 11:01:46 上午 org.apache.catalina.core.StandardContext filterStart
- 严重: Exception starting filter springSecurityFilterChain
- java.lang.ClassCastException: org.springframework.web.filter.DelegatingFilterProxy cannot be cast to javax.servlet.Filter
- at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
- at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
- at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
- at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
- at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
- at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
- at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
- at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
- at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
- at org.apache.catalina.startup.Embedded.start(Embedded.java:825)
- at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
- at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
- at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
- at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
- at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
- at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
- at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
- at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
- at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
- at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
- at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
- at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
- at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:483)
- at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
- at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
- at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
- at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
pom.xml 文件部分配置如下:
[java] view plain copy
- <pre name="code"><dependencies>
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <strong><scope>provided</scope><!-- 此处已经改过,试过还是不行 --></strong>
- </dependency>
- <!-- aspectj dependency -->
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- <version>1.6.11</version>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
- <artifactId>aspectjweaver</artifactId>
- <version>1.6.11</version>
- </dependency>
- <!-- Data Source -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-dbcp2</artifactId>
- <version>2.0</version>
- </dependency>
- <dependency>
- <groupId>commons-pool</groupId>
- <artifactId>commons-pool</artifactId>
- <version>1.5.7</version>
- <scope>runtime</scope>
- </dependency>
- <!-- javax -->
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- <version>7.0</version>
- <scope>provided</scope> <!-- 问题出在这里 -->
- </dependency>
- </dependencies>
web.xml 文件部分配置如下:
[html] view plain copy
- <servlet>
- <servlet-name>springMVC</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
[html] view plain copy
- <!-- Configure Charset -->
- <filter>
- <filter-name>charsetFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>forceEncoding</param-name>
- <param-value>true</param-value>
- </init-param>
- </filter>
纠结了一天,网上说是 jar 包冲突:
“tomcat 启动后先将 tomcat/lib 目录下的 jar 包全部读入内存,如果 webapps 目录里的应用程序中 WEB-INF/lib 目录下有相同的包,将无法加载,
不同版本的包之间也会造成类似问题。
解决这个问题的方法就是对于 servlet-ap.jar 使用 <scope> 标签,编译的时候用到 servlet-api 和 jsp-api,但在打包的时候不用这两个依赖
如下”
[html] view plain copy
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
后来在网上看到一篇文章(http://stackoverflow.com/questions/15715864/opensessioninviewfilter-cannot-be-cast-to-javax-servlet-filter),终于找到问题。
如下测试代码,能告诉你 class 文件是从哪个 jar 包中加载的
[java] view plain copy
- @Test
- public void get(){
- URL url = Filter.class.getProtectionDomain().getCodeSource().getLocation();
- System.out.println("path:"+url.getPath()+" name:"+url.getFile());
import java.net.URL;
import javax.servlet.Filter;
import org.junit.Test;
public class d {
@Test
public void testget(){
URL url = Filter.class.getProtectionDomain().getCodeSource().getLocation();
System.out.println("path:"+url.getPath()+" name:"+url.getFile());
}
}
- // 输出结果:path:/C:/Users/User/.m2/repository/javax/javaee-api/7.0/javaee-api-7.0.jar name:/C:/Users/User/.m2/repository/javax/javaee-api/7.0/javaee-api-7.0.jar
我们实际项目中用到了 javaee 的 api,javaee-api-7.0.jar 文件中也有 Filter,所以 在引用 javaee-api 依赖的时候,pom.xml 文件中对应的加上 “<scope>provided</scope>” 就可以了
(说明:
测试的时候,需要将 pom.xml 文件中
[html] view plain copy
- <!--
[html] view plain copy
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
[html] view plain copy
- -->
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码
@Bean public mockmvcBuilderCustomizer mockmvcBuilderCustomizer(Listablebeanfactory beanfactory) { Filter springSecurityFilterChain = beanfactory.getBean("springSecurityFilterChain",Filter.class); return builder -> builder.addFilters(springSecurityFilterChain) .defaultRequest(get("/").with(csrf()).with(user(123L).roles("ADMIN"))) .build(); }
今天的关于org.springframework.test.web.servlet.htmlunit.webdriver.WebConnectionHtmlUnitDriver的实例源码的分享已经结束,谢谢您的关注,如果想了解更多关于java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet、javax.servlet.ServletException:类 [org.glassfish.jersey.servlet.ServletContainer] 不是 Servlet、maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter、org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer的实例源码的相关知识,请在本站进行查询。
本文标签: