Web Services JAX-RS在两个服务中使用相同的@路径标识符

nbnkbykc  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(176)

我在实现JAX-RS Web服务时遇到了下面的场景。
服务A:

@Path("/customer/{customerId}")
public interface ICustomerDataUsageService{

@GET
@Path("/datausage")
public Response getCustomerDataUsage();

//other methods...
}

服务B:

@Path("/")
public interface IHelpDeskService{

@GET
@Path("/customer/{customerId}")
public Response getCustomer();

//other methods...
}

部署后,只有服务A在工作(它在服务B之后注册)。对于第二个,我得到HTTP 404错误。
遗憾的是,我们不能更改接口,因为它是由另一个实体提供的。我们只能控制这些接口的实现类。
我使用的是Jersey-2.22
有没有办法在不改变接口的情况下让这两个服务都工作?
提前致谢!

vlurs2pr

vlurs2pr1#

这确实是一个bug,API团队通过更正API修复了它。修复如下:
服务A:

@Path("/customer")
public interface ICustomerDataUsageService{

@GET
@Path("/{customerId}/datausage")
public Response getCustomerDataUsage();

//other methods also got /{customerId} added in path
}

服务B:

@Path("/")
public interface IHelpDeskService{

@GET
@Path("/customer/{customerId}")
public Response getCustomer();

//other methods...
}

相关问题