此问题已在此处有答案:
Servlet 5.0 JAR throws compile error on javax.servlet.* but Servlet 4.0 JAR does not(3个答案)
3天前关闭。
我得到classcastexception,而提交的形式这里是我的web.xml的servletMap代码,请帮助什么是错误的,为什么这个异常来
异常:严重:为servlet分配异常[register] java.lang.ClassCastException:类servlets.RegisterServlet不能强制转换为类jakarta.servlet.Servlet(servlets.RegisterServlet在loader org.apache. Catalina .loader. ParallelWebappClassLoader@1d131e1b;的未命名模块中jakarta.servlet.Servlet在加载器java.net的未命名模块中。URLClassLoader@7106e68e)
Web.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<display-name>RegistrationServlet</display-name>
`your text`
<servlet>
<servlet-name>register</servlet-name>
<servlet-class>servlets.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>register</servlet-name>
<url-pattern>/RegisterServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
我试图清理项目和服务器,以及检查构建路径和所有相应的库,但我仍然得到这个怎么办,有人能帮助吗??
1条答案
按热度按时间q35jwt9p1#
您遇到的
java.lang.ClassCastException
是由于类装入器之间的冲突造成的。您的servlets.RegisterServlet
类似乎由org.apache.catalina.loader.ParallelWebappClassLoader
加载,而jakarta.servlet.Servlet
类由java.net.URLClassLoader
加载。此问题可能是由于应用程序的类路径中存在同一个库(在本例中为Servlet API)的多个版本而引起的。