如何在 jax-rs 端点的路径参数中允许斜杠

How to allow slashes in path param in jax-rs endpoint

我有一个端点:

@Path("/products")

    @Produces({ MediaType.APPLICATION_JSON })
    public interface Products {

        @PUT
        @Path("/{productId}")
        ....
    }

我为此服务实现了一个 jax-rs 客户端,并将其导入到我调用它的另一个服务中。

所以我从我的第二个服务如下调用客户端

public String updateProduct(String productId){
..
  return client.target(this.getBaseUrl()).path("products/").path(productId).request(MediaType.APPLICATION_JSON_TYPE).put(Entity.json(""), String.class);
}

如果我有一个带有斜线的产品说“control/register app”,服务似乎不太接受。我在调用服务之前对 productId 进行了编码,然后在收到后对其进行了解码。但这似乎不起作用,我收到 404 not found。有任何想法吗?提前致谢

使用 @Path("{productId : .+}") 应该可以。