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

如何移除EclipseLink 3.x及以上版本暴露的额外REST API?

从Java EE 8迁移到Jakarta EE 9并升级EclipseLink到3.0.3后出现的这些/api开头的REST接口,是EclipseLink 3.x默认启用的内置RESTful服务(基于MOXy/JAXB-RS)——在2.7.x版本中该特性需要手动配置才会开启,而3.x版本适配Jakarta EE 9生态后默认自动启用。

以下是几种可行的移除方法:

方法1:排除EclipseLink的REST模块依赖

如果项目完全不需要EclipseLink的REST功能,直接在pom.xml的依赖中排除REST模块即可:

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>3.0.3</version>
    <exclusions>
        <!-- 核心:排除REST服务模块 -->
        <exclusion>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.rest</artifactId>
        </exclusion>
        <!-- 可选:如果项目不使用MOXy作为JAXB实现,可同时排除 -->
        <exclusion>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.moxy</artifactId>
        </exclusion>
    </exclusions>
</dependency>

方法2:通过配置参数禁用REST服务

若不想修改依赖结构,可通过配置直接关闭EclipseLink的REST自动注册:

  • 在persistence.xml中添加属性:
<properties>
    <property name="eclipselink.rest.enabled" value="false"/>
</properties>
  • 若使用Spring Boot/Quarkus等框架,也可在配置文件中设置:
# application.properties
eclipselink.rest.enabled=false

该参数会直接阻止EclipseLink初始化并注册这些REST接口。

方法3:覆盖默认REST应用注册(备用)

如果前两种方法无效,可通过自定义Application类或修改web.xml配置,覆盖EclipseLink自动注册的REST应用:
比如创建自定义的Jakarta REST应用类,仅注册项目自身的REST资源:

import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;
import java.util.HashSet;
import java.util.Set;

@ApplicationPath("/api")
public class CustomRestApplication extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet<>();
        // 仅添加项目自身的REST资源类
        resources.add(YourCustomResource.class);
        return resources;
    }
}

这种方法会替换EclipseLink默认注册的REST应用,只保留你自己定义的接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:17:08