' org.h2.server.web.webservlet'无法分配给Javax.Servlet.Servlet,Jakarta.Servlet.Servlet'
我正在使用 jakarta.jakartaee-api 9.1.0 和 H2 2.1.212 。
当我尝试将 H2控制台servlet 添加到Web.xml文件时,我会遇到此错误:
'org.h2.server.web.webservlet'无法分配给 'javax.servlet.servlet,jakarta.servlet.servlet'
这是我的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="5.0"
xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd">
<data-source>
<name>java:global/dataSource</name>
<class-name>org.h2.jdbcx.JdbcDataSource</class-name>
<url>jdbc:h2:mem:test;MODE=LEGACY</url>
</data-source>
<servlet>
<servlet-name>H2Console</servlet-name>
<servlet-class>org.h2.server.web.WebServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>H2Console</servlet-name>
<url-pattern>/h2/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>jakarta.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>jakarta.ws.rs.core.Application</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
如何解决错误?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Jakarta。*
包装雅加达9和9.1的软件包名称空间是
jakarta。*
。 this 命名在甲骨文过渡时,将Java EE移交给Eclipse Foundation,在那里它变成了Jakarta EE。我在GitHub上的H2代码库戳了一下,发现
jakartawebservlet
。这似乎是同一条servlet,但使用jakarta。*
软件包。您可能可以从:…转换为:
请参阅 h2文档。
jakarta.*
packagesThe package namespace for Jakarta 9 and 9.1 is
jakarta.*
. This changed from the oldjavax.*
naming during the transition of Oracle handing over Java EE to the Eclipse Foundation where it became Jakarta EE.I poked around the H2 codebase on GitHub, and found
JakartaWebServlet
. This seems to be the same Servlet but using thejakarta.*
packages. You may be able to switch from:… to:
See the H2 documentation.