You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GlassFish中加载RESTful Web应用时如何解决IllegalStateException?

解决Jersey启动时的NoSuchMethodError异常

这个错误java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List是典型的Jersey依赖版本冲突导致的,我之前调试类似项目时也碰到过,大概率是你的项目里混入了不同版本的Jersey相关Jar包,或者WADL类库版本不兼容。下面是具体的排查和解决步骤:

1. 统一Jersey核心依赖版本

你在web.xml里配置的是Jersey 1.x的Servlet容器类com.sun.jersey.spi.container.servlet.ServletContainer,所以必须保证所有Jersey相关依赖(比如jersey-core、jersey-server、jersey-servlet)都是同一个1.x版本,绝对不能混合Jersey 1.x和2.x的依赖——这是最常见的冲突原因。

如果用Maven管理依赖,建议通过属性统一版本:

<properties>
    <jersey.version>1.19.4</jersey.version> <!-- 选一个稳定的1.x版本 -->
</properties>

<dependencies>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>${jersey.version}</version>
    </dependency>
</dependencies>

2. 排查并排除冲突的WADL依赖

com.sun.research.ws.wadl.Response类属于WADL相关库,如果你的项目里有其他依赖间接引入了不同版本的WADL Jar,就会出现方法找不到的问题。可以用Maven的依赖树命令排查:

mvn dependency:tree

找到所有包含com.sun.research.ws.wadl的依赖,然后通过<exclusions>标签排除冲突的版本:

<dependency>
    <groupId>你的其他依赖groupId</groupId>
    <artifactId>你的其他依赖artifactId</artifactId>
    <version>版本号</version>
    <exclusions>
        <exclusion>
            <groupId>com.sun.research.ws.wadl</groupId>
            <artifactId>wadl-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 清理项目并重新构建

  • 清理本地项目的target(或build)目录,删除旧的编译文件和依赖Jar
  • 重新执行构建命令(mvn clean install或Gradle的clean build)
  • 如果是部署到本地Tomcat,检查Tomcat的lib目录里有没有和项目依赖冲突的Jar,尽量让项目依赖独立,不要依赖Tomcat自带的类库

4. 确认web.xml配置匹配依赖版本

你的web.xml配置是正确的Jersey 1.x格式,不需要修改,但要确保没有误引入Jersey 2.x的依赖(比如org.glassfish.jersey.*开头的Jar),如果有,直接删除这些不兼容的依赖。

按照上面的步骤操作后,应该就能解决这个启动异常了。

内容的提问来源于stack exchange,提问作者Samuel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:13:27