Jersey 如何在一个WAR中公开具有相同路径的两个JAX-RS资源

Jersey 如何在一个WAR中公开具有相同路径的两个JAX-RS资源,jersey,jax-rs,Jersey,Jax Rs,在WAR文件中,我添加了2个不同的JAR,其中包含JAX-RS资源。 我添加了一个ResourceConfig子类来注册这个2 JAR中的所有资源。 但在这两个JAR中,一个资源具有相同的名称。是否可以从ResourceConfig类中的register方法更改路径名,或者以任何其他方式更改资源的路径并将其指定给其他名称 我无法创建多个@applicationpath 在JAR 1中: @Path("product") public class ProductApi(){ ......

在WAR文件中,我添加了2个不同的JAR,其中包含JAX-RS资源。 我添加了一个ResourceConfig子类来注册这个2 JAR中的所有资源。 但在这两个JAR中,一个资源具有相同的名称。是否可以从ResourceConfig类中的register方法更改路径名,或者以任何其他方式更改资源的路径并将其指定给其他名称

我无法创建多个@applicationpath

在JAR 1中:

@Path("product")
public class ProductApi(){
    ......
}
在jar2中:

@Path("product")
public class ProductApi(){
    ......
}
在战争中

@ApplicationPath("api")
public class MainAPi extends ResourceConfig {
    packages(jar1.apis);
    packages(jar2.apis);
}
因此,冲突与
ProductApi
有关。只有一个有效,因为它共享相同的路径
/api/product

那么如何从
MainApi
路由到不同的
ProductApi

或者是否有其他方法可以在不修改jar的情况下更改它?

您可以尝试定义两个
ResourceConfig

@ApplicationPath("api1")
public class MainApiOne extends ResourceConfig {
    packages(jar1.apis);
}

@ApplicationPath("api2")
public class MainApiTwo extends ResourceConfig {
    packages(jar2.apis);
}

因此,
/api1/product
访问jar1中的资源,
/api2/product
访问jar2中的资源

您可以尝试定义两个
ResourceConfig

@ApplicationPath("api1")
public class MainApiOne extends ResourceConfig {
    packages(jar1.apis);
}

@ApplicationPath("api2")
public class MainApiTwo extends ResourceConfig {
    packages(jar2.apis);
}
因此,
/api1/product
访问jar1中的资源,
/api2/product
访问jar2中的资源

我从

我将其添加到主ResourceConfig文件中,现在通过新的URL路由(newpath/product)调用它。

我从

我将其添加到主ResourceConfig文件中,现在通过新的URL路由(newpath/product)调用它