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

GlassFish 6.2.1部署JAX-RS服务时抛出ClassNotFoundException异常求助

解决RESTful Web服务部署失败问题

1. 处理映射冲突警告

  • 检查web.xml与MyApplication类的配置重复问题:如果既通过@ApplicationPath("/api")注解让MyApplication自动注册REST服务,又在web.xml里手动配置了Servlet映射到/api/*,就会触发冲突。
  • 二选一即可:要么删除web.xml中对应的Servlet映射节点,保留MyApplication的注解配置;要么删除MyApplication类,仅保留web.xml里的Servlet配置。

2. 修复ClassNotFoundException错误

这个错误源于依赖版本不匹配或冗余依赖:

  • GlassFish 6.x自带适配Jakarta EE 9的Jersey实现,禁止在项目中手动添加Jersey相关依赖(比如jersey-container-servlet、jakarta.ws.rs-api的非provided版本),避免与服务器自带库冲突。
  • 若为Maven项目,调整pom.xml依赖:引入Jakarta EE BOM统一管理版本,仅添加jakarta.ws.rs-api并设置scope为provided,示例:
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>jakarta.platform</groupId>
                <artifactId>jakarta.jakartaee-bom</artifactId>
                <version>9.1.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <dependencies>
        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    
  • 清理旧部署文件:删除GlassFish安装目录下domains/domain1/generated和domains/domain1/applications中的旧文件,在NetBeans中执行Clean and Build后重新部署。

3. 额外验证项

  • 确认MyApplication类配置正确:需继承jakarta.ws.rs.core.Application,并通过@ApplicationPath("/api")注解指定路径,示例代码:
    package com.ayush1.server;
    
    import jakarta.ws.rs.ApplicationPath;
    import jakarta.ws.rs.core.Application;
    
    @ApplicationPath("/api")
    public class MyApplication extends Application {
        // 如需手动注册资源类,重写getClasses()方法即可
    }
    
  • 检查NetBeans服务器配置:确保GlassFish 6.2.1的运行环境绑定为Jakarta EE 9版本,避免环境不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:42:51