RESTful Web サービスのクライアントを作成しています。この場合、私のサーバーは常に期待されるオブジェクトを返すとは限りません (たとえば、指定されたパラメーターで何も見つからないため、戻り値は NULL になります)。
@GET
@Path("/person/{name}")
@Produces("application/xml")
public Person getPerson(@PathParam("name") String name) {
return people.byName(name);
}
指定された名前が見つからない場合、byName() メソッドは NULL を返します。指定されたオブジェクトをアンマーシャリングすると、例外が発生します。if/else ステートメントまたはさまざまな方法で戻り値を処理するための最も一般的でクリーンな方法は何ですか?
JAXBContext jcUnmarshaller = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jcUnmarshaller.createUnmarshaller();
return (Person) unmarshaller.unmarshal(connection.getInputStream());
解決
getPerson( ) throws WebApplicationException {
throw new WebApplicationException(404);
}