Java Reference
In-Depth Information
If there are more possible customer instances left to be viewed, a
next
link relationship is
calculated using the
UriBuilder
template defined earlier. A similar calculation is done to
see if a
previous
link relationship needs to be added to the document.
}
Customers customers
=
new
new
Customers
();
customers
.
setCustomers
(
list
);
customers
.
setLinks
(
links
);
return
return
customers
;
}
Finally, a
Customers
instance is created and initialized with the
Customer
list and link rela-
tionships and returned to the client.
The Client Code
The client initially gets the XML document from the
/customers
URL. It then loops using
the
next
link relationship as the URL to print out all the customers in the database:
public
public class
class
CustomerResourceTest
CustomerResourceTest
{
@Test
public
public
void
void
testQueryCustomers
()
throws
throws
Exception
{
URI uri
=
new
new
URI
(
"http://localhost:8080/services/customers"
);
while
while
(
uri
!=
null
null
)
{
WebTarget target
=
client
.
target
(
uri
);
String output
=
target
.
request
().
get
(
String
.
class
);
System
.
out
.
println
(
"** XML from "
+
uri
.
toString
());
System
.
out
.
println
(
output
);
Customers customers
=
target
.
request
().
get
(
Customers
.
class
);
uri
=
customers
.
getNext
();
}
}
}
An interesting thing to note about this is that the server is guiding the client to make state
transitions as it browses the customer database. Once the initial URL is invoked, further
queries are solely driven by Atom links.
Build and Run the Example Program
Perform the following steps: