【问题标题】:Shorten path of REST service in JBoss Seam application缩短 JBoss Seam 应用程序中 REST 服务的路径
【发布时间】:2026-01-31 08:50:01
【问题描述】:

我对 JBoss 和 Seam 还是很陌生。我的项目有一个风格的 REST 服务

@Path("/media")
@Name("mediaService")
public class MediaService {

    @GET()
    @Path("/test")
    public Response getTest() throws Exception {
        String result = "this works";
        ResponseBuilder builder = Response.ok(result);
        return builder.build();
   }
}

我可以通过http://localhost:8080/application/resource/rest/media/test 与此联系。但是,我根本不喜欢这个 URL,我更喜欢像 http://localhost:8080/application/test 这样更短的 URL。

能否请您指出正确的方向,了解如何正确配置应用程序? (使用 Eclipse 开发)

【问题讨论】:

    标签: rest jboss seam


    【解决方案1】:

    web.xml会包含seam资源servlet映射,这个要修改成/*,如果你对路径有更多的配置会在components.xml中,如果是resteasy seam配置使用,它会如下所示

    <resteasy:application resource-path-prefix="/rest"/>
    

    【讨论】:

    • 感谢您的帮助! web.xml 目前说: Seam Resource Servlet/resource/* 所以我拿将&lt;url-pattern&gt; 更改为 /* 就是您的意思。我的 components.xml 没有任何&lt;resteasy&gt; 标签,所以我将介绍您上面的内容并报告回来。一个担心是副作用:我以前玩过一次这些设置,并且失去了在 xhtml 中使用远程处理标记的能力,因为它总是解析到错误的路径。直接使用正确的javascript解决了这个问题。
    • 好的,我刚试了一下,效果是,我现在连应用程序的起始xhtml页面都看不到了。它给了我一个 404。对于 Seam Resource Servlet,我使用 /*,对于 Resteasy,我使用 /media 有什么想法吗?
    • 嗯,我不认为您可以使用与提供 REST url 相同的模式来提供 xhtml,因为 xhtml 必须通过 faces servlet,它们不能同时映射到 /*
    • 嗯,这么简单的事情似乎不可能。