@Target(value={PARAMETER,FIELD,METHOD}) @Retention(value=RUNTIME) @Documented public @interface Uri
resource target pointing at
a resource identified by the resolved URI into a method parameter,
class field or a bean property.
Injected variable must be of type WebTarget.WebTarget| Modifier and Type | Required Element and Description |
|---|---|
String |
value
Specifies the URI of the injected
resource target. |
public abstract String value
resource target.
The value must be in the form of absolute URI if not used from inside of
a JAX-RS component class. For example:
public class AuditingFilter implements RequestFilter {
@Uri("users/{name}/orders")
WebTarget userOrders;
// An external resource target
@Uri("http://mail.acme.com/accounts/{name}")
WebTarget userEmailAccount;
// An external, template-based resource target
@Uri("http://{audit-host}:{audit-port}/auditlogs/")
WebTarget auditLogs;
...
}
If used from within a JAX-RS component class (e.g. resource, filter, provider …),
the value can take a form of absolute or relative URI or absolute or relative URI.
A relative URI is resolved using the context path of the application as the base URI.
For example:
public class AuditingFilter implements RequestFilter {
@Uri("audit/logs")
WebTarget applicationLogs;
@Uri("http://sales.acme.com/audit/logs")
WebTarget domainLogs;
...
}
In case the annotation is used from a JAX-RS resource class, an absolute
or relative URI template value may be provided. The template parameter (e.g. {id})
values are resolved in the context of the enclosing resource class
path template as well as the context of the processed request.
For example:
@Path("users/{name}")
public class MyResource {
@Uri("users/{name}/orders")
WebTarget userOrders;
@Uri("http://mail.acme.com/accounts/{name}")
WebTarget userEmailAccount;
...
}
Copyright © 2013. All Rights Reserved.