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

RESTEasy中web.xml配置修改:调整应用访问URL路径

修改RESTEasy应用访问URL配置指南

我当前使用RESTEasy框架,Web应用的访问URL为http://localhost:8080/JAXRS-RESTEasy/rest/,希望将其修改为http://localhost:8080/rest/JAXRS-RESTEasy/,以下是具体的配置调整方案:

核心修改思路

原URL结构为[上下文根]/[servlet前缀]/[资源路径],目标结构为[新上下文根]/[应用路径]/[资源路径],需要调整上下文根、servlet映射规则,并为应用类添加路径注解。

1. 修改Web应用上下文根

将Web应用的上下文根从JAXRS-RESTEasy改为rest,操作方式取决于你的服务器:

  • Tomcat环境:直接将war包重命名为rest.war;或者在server.xml中配置Context节点:
    <Context docBase="JAXRS-RESTEasy" path="/rest" reloadable="true"/>
    

2. 调整web.xml配置

修改servlet-mapping和RESTEasy的前缀参数,让servlet处理上下文根下所有请求:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>JAXRS-RESTEasy</display-name>
    
    <!-- 修改url-pattern为/*,处理上下文根下所有请求 -->
    <servlet-mapping>
        <servlet-name>resteasy-servlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

    <!-- 清空前缀参数,因为已不再需要额外的servlet路径前缀 -->
    <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value></param-value>
    </context-param>

    <servlet>
        <servlet-name>resteasy-servlet</servlet-name>
        <servlet-class>
            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
        </servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.javacodegeeks.enterprise.rest.resteasy.MyRESTApplication</param-value>
        </init-param>
    </servlet>      
</web-app>

3. 为应用类添加路径注解

在MyRESTApplication类上添加@ApplicationPath注解,指定应用的基础路径为/JAXRS-RESTEasy:

package com.javacodegeeks.enterprise.rest.resteasy;

import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
 
@ApplicationPath("/JAXRS-RESTEasy")
public class MyRESTApplication  extends Application {
    
    private Set<Object> singletons = new HashSet<Object>();
     
    public MyRESTApplication() {
        singletons.add(new RESTEasyHelloWorldService());
    }
 
    @Override
    public Set<Object> getSingletons() {
        return singletons;
    }

}

验证

配置完成后,重启服务器,访问URL即可变为http://localhost:8080/rest/JAXRS-RESTEasy/[你的资源路径],符合预期需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:02:22