Я пытаюсь использовать стандартный метод Link для построения динамических представлений для разных ресурсов/методов. @InjectLink аннотаций, который работает прекрасно для меняСсылка эквивалентна @InjectLink jersey
public class InjectLinkTest {
@InjectLink(resource = GraphResource.class, method = "getDataInterval", bindings = { @Binding(name = "dataid", value = "${instance.id}"), @Binding(name = "interval", value = "day") }, condition = "${instance.id != null}")
public URI day;
// ...
}
Это создает относительную ссылку на ресурс и метод, как ожидалось: /myresource/graphs/3/day
Теперь я хочу сделать эквивалент того, что с более стандартным методом с использованием Jax -rs»по умолчанию Link
:
public class StandardLinkTest {
public URI day = Link.fromMethod(GraphResource.class, "getDataInterval").build(this.id, "day").getUri();
// ...
}
Я попытался это с различными вариантами (создание базы URI приложения вручную, и т.д.), но по какой-то причине он никогда не возвращает правильный URI для меня. Все, что я получаю, это 3/day
или http://localhost:8080/3/day
, который не является полным (глобальным) путем представления ресурсов и методов, но путь, видимый с места, где ссылка построена на, т.е. я пытаюсь получить путь внутри объекта это /myresource/graphs
возврат. Как получить эквивалентный путь к аннотации @InjectLink
со стандартным компоновщиком Jax-RS без использования жестко заданных частей пути? Для справки, правильный полный путь к целевому ресурсу будет http://localhost:8080/myresource/graphs/3/day
.
Спасибо за тот великий ответ! Именно то, что я искал! – PureSpider