rest - Jersey 与 javax Servlet 发生冲突

标签 rest intellij-idea jersey web.xml

我正在使用 Jersey 和 Maven 设置一个简单的 REST 服务。对于高于 1.8 的 Jersey 版本,IntelliJ 中的 web.xml 会引发此错误:

'com.sun.jersey.spi.container.servlet.ServletContainer' is not assignable to 'javax.servlet.Servlet'

有谁知道如何解决这个问题以使用最新版本的 Jersey?

这是 web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5">

<display-name>R Proxy</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/r-proxy-log4j.properties</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Jersey configuration -->
<servlet>
    <servlet-name>jersey-servlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>org.fao.fenix.r.proxy.rest</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

<!-- Jersey configuration -->
<servlet-mapping>
    <servlet-name>jersey-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

最佳答案

对于所有遇到相同问题的人 - 那是因为您的类路径中没有 servlet api。只需将 servlet-api 依赖项添加到您的项目中,一切都会好起来的。

关于rest - Jersey 与 javax Servlet 发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16033631/

相关文章:

java - 在 Spring REST 服务中优雅地处理无效文件上传

rest - 通过REST API将山d作为单独的消息发送给多个人

rest - HTTP 动词 - 何时使用 GET/POST/PUT/Delete

java - 如何从 IntelliJ IDEA 的覆盖率测量中排除源代码?

intellij-idea - 如何从终端运行自定义 IntelliJ 检查

java - 如何查看 application.properties 文件中的属性引用的位置?

java - 如何修改Java集成测试的网络连接?

java - 在 Jersey ResourceFilterFactory 中获取实际参数值

java - 第一次制作REST服务,从android调用

typescript - 在 NestJS 中处理 204 无内容响应的最佳方法是什么?