当前位置: 首页 > 知识库问答 >
问题:

如何在Tomee+中配置JAX-RS基本路径?

欧阳俊捷
2023-03-14

我与部署在TomEE Plus中的一些JAX-RS服务发生了冲突。给定一个用@path(“myservice”)注释的服务,Tomee+将其发布到localhost:8080/mywebapp/myservice

因此,我希望为所有服务配置路径前缀API,这将MyServiceURL更改为LocalHost:8080/MyWebApp/API/MyService。如果我自己配置了CXF(使用或不使用Spring),那么这样做将是微不足道的,因为我可以简单地更改CXF Servlet的URL模式--但是我依赖于缺省设置,在缺省设置中,除了注释之外,我不配置任何东西。那么在这种情况下我该怎么做呢?

请注意,我不想修改@path注释以包含前缀,因为这不能解决JSP的问题。

共有1个答案

淳于祺
2023-03-14

创建javax.ws.rs.core.application的扩展,并用@applicationPath对其进行注释,在您的例子中,值为api

@ApplicationPath("/api")
public class MyApplication extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> classes = new HashSet<Class<?>>();
        // register root resource
        classes.add(MyServiceResource.class);
        return classes;
    }
}

这样,servlet3容器将查找应用程序并将资源映射到/mywebapp/api/myservice,同时使web资源(.jsp)在/mywebapp中可用。

 类似资料:
  • 多年来,我一直试图让托米1.5.2 JAX-RS与杰克逊合作。我想我已经尝试了100种方法。 这是我的最后一次尝试: 我在conf/system.properties中添加了以下内容: 我在托米的 lib 文件夹中添加了: jackson-mapper-asl-1.9.12.jar jackson-core-asl-1.9.12.jar罐 jackson-jaxrs-1.9.12.jar 我在一个

  • 是否可以覆盖嵌入的 CXF JaxRS 容器的 TomEE 中的设置?我一直在尝试集成我自己的拦截器来处理JaxRS服务的路由。 我似乎不能做的是让TomEE在启动我的服务时加载拦截器。 我读过很多文章,其中说我应该能够通过添加以下内容来配置TomEE中的CXF内容 我还看到了一些引用,说明TomEE使用了TomEE。xml替换openejbjar。xml,所以我尝试在那里进行pojo部署,但由于

  • 我对Jackson注释有一个问题,在《大部头1》中似乎被忽略了。我使用Jackson将REST响应序列化为JSON。我打开了设置: openejb。cxf。jax-rs.providers=org。科德豪斯。杰克逊。jaxrs。JacksonJsonProvider在系统中。属性 Jackson序列化工作正常,除了所有似乎被完全忽略的Jackson注释。事件像@JsonIgnore或@JsonPr

  • 我正在尝试在TomEE服务器上运行我的应用程序,在经历了很多麻烦之后,我能够运行该应用程序。 然而,由于某种原因,我得到了某种类型的jar重新定位冲突,因此每当从应用程序调用重新定位资源类时都会出现如下错误 我验证了BuiltResponse类,该类扩展了resteasy jar中的响应类,它包含该方法似乎很好。我尝试提取许多其他jar,以便提供冲突。下面是我处理resteasy的POM的一部分

  • 我对ActiveMQ非常陌生,希望能在设置tomEE的默认内部ActiveMQ代理方面提供一些帮助。具体来说,任何一本书的样本。xml将非常有用。

  • 我创建了一个简单的RESTful服务,但当我尝试返回json时,出现了以下错误: 看看TomEE 1.7.1,我看到在jax-rs实现后面有Apache CXF 2.6.4,所以我试图配置属性忽略命名空间=真。 不幸的是,我没有找到任何关于TomEE的文档,如果我想设置ignoreNamespaces = true,我应该在< code>beans.xml中设置它 我应该尝试使用不同的实现(Jer