【问题标题】:Apache - CXF jaxrs-server - unable to hit the resource which is defined first in jaxrs-server endpointApache - CXF jaxrs-server - 无法访问在 jaxrs-server 端点中首先定义的资源
【发布时间】:2023-03-24 16:45:01
【问题描述】:

我正在使用 Apache-CXF 来实现 JAX-RS。我有两个资源,它们在两个 bean 中定义。我在 context.xml 操作系统中的 jaxrs-server 如下

 <jaxrs:server id="serverId" address="/">
    <jaxrs:serviceBeans>
        <bean id="bean1" class="com.Bean1" />
        <bean id="bean2" class="com.Bean2" />
    </jaxrs:serviceBeans>
</jaxrs:server>

Bean1的接口如下-

   @Path("/")
   public interface IBean1 {
    @GET
    @Path("/beaninfo1")
    @Produces({ MediaType.APPLICATION_XML })
    public Response checkBean1();
   }

Bean2的接口如下-

   @Path("/")
   public interface IBean2 {
    @GET
    @Path("/beaninfo2")
    @Produces({ MediaType.APPLICATION_XML })
    public Response checkBean1();
   }

我无法访问 serviceBans 定义中最后定义的资源。在这种情况下,我能够击中 Bean2 但不能击中 Bean1,出现 404 错误,好像我先放 Bean2 然后放 Bean1,我只能击中 Bean1。

我的配置有什么问题吗?

【问题讨论】:

    标签: apache rest cxf jax-rs


    【解决方案1】:

    在类级别可以有相同的@Path 注释。您需要使用资源比较器。请检查此question

    【讨论】:

      【解决方案2】:

      是的。在班级级别给他们不同的@Path注解。

      【讨论】:

      • 感谢您的回复。我想在班级级别保持相同的路径。有没有其他方法可以解决这个问题?
      • 正如您所建议的,我设法在类级别使用不同的 @Path 注释并且它有效。看来,我们不能在班级级别拥有相同的路径。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      相关资源
      最近更新 更多