2

JavaのRestfulWebサービスで使用する独自のxmlデータを作成するにはどうすればよいですか?を使用して文字列ファイルを作成しましたStringBuilderが、クライアント側で使用しようとすると、そこから属性を抽出する際に常に問題が発生し、常にエラーが発生します。

以下にリストされているのは私のコードです。

Employee emp0 = new Employee("David", "Finance");
Employee emp1 = new Employee("Smith", "HealthCare");
Employee emp2 = new Employee("Adam", "Information technology");
Employee emp3 = new Employee("Stephan", "Life Sciences");

map.put("00345", emp0);
map.put("00346", emp1);
map.put("00347", emp2);
map.put("00348", emp3);

@GET
@Path("{id}")
@Produces({"application/xml"})
public String find(@PathParam("id") String id) {

    Employee emp = (Employee) map.get(id);
    if (emp != null) {
        StringBuilder br = new StringBuilder();
        br.append("<?xml version='1.0' encoding='UTF-8'?>").append(nl);
        br.append("<Employee>").append(nl);
        br.append("<Emp-ID>").append(id).append(" </Emp-ID >").append(nl);
        br.append("<Name>").append(emp.getName()).append(" </Name>").append(nl);
        br.append("<dept>").append(emp.getDept()).append(" </Department>").append(nl);
        br.append("</Employee>");
        return br.toString();
    } else {
        return "Unknown id";
    }
}

NameとDepartmentを属性として持つEmployeeという名前のPOJOもあります。ありがとう。

4

2 に答える 2

1

このstringbuilder演習の代わりに、EmployeeクラスでJAXBアノテーションを使用することをお勧めします。
このリンクはあなたが始めるのに役立つはず
であり、このリンクはそれ以上の質問に答えるはずです

于 2012-12-28T03:45:17.347 に答える
0

@XmlRootElement(name="Employee")クラスに注釈を追加するEmployeeと、次のことができます。

@GET
@Path("{id}")
@Produces({"application/xml"})
public Employee find(@PathParam("id") String id) {

    return (Employee) map.get(id);

}

次に、@XmlElement注釈を使用して要素名をオーバーライドできます。JAX-RS オブジェクトを利用して、エラー メッセージResponseではなくステータス コードを返すこともできます。String

詳細については

于 2012-12-28T11:49:46.687 に答える