优米格
分享有营养的

使用Jersey构建RESTful服务之将Java对象转换为XML并输出

BraUndress.png

请先看汇总篇「Web Service入门及实践」,学习前面的基础知识和例子再来看这篇!

在使用Web Service时,XML是经常用到的数据交换格式。这个例子就是演示如何将Java对象转换为XML格式,并返回给Web Service客户端。

首先增加一个实体类User:

package com.demo2.bean;

import javax.xml.bind.annotation.XmlRootElement;

/**
 * 用户实体类
 *
 * XmlRootElement表示将bean转换为xml,用在实体类中,
 * 如果要将bean以xml或json的格式返回,必须要这个注解
 */
@XmlRootElement
public class User {
    private String userId;
    private String userName;
    private String age;

    public User() {
    }

    public User(String userId, String userName, String age) {
        this.userId = userId;
        this.userName = userName;
        this.age = age;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

然后增加一个resource

package com.demo2.resources;

import com.demo2.bean.User;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Path("/userresource")
public class UserResource {
    private static Map<String,User> userMap = new HashMap<String,User>();//存储用户

    /**
     * 查询所有用户
     * Get表示查询检索
     * Produces表示指定将要返回给客户端的数据类型表示
     * @return
     */
    @GET
    @Path("/allUsersXml")
    @Produces(MediaType.APPLICATION_XML)
    public List<User> getAllUsers(){
        List<User> users = new ArrayList<User>();
        User u1 = new User("001","WayLau","26");
        User u2 = new User("002","King","23");
        User u3 = new User("003","Susan","21");

        userMap.put(u1.getUserId(), u1);
        userMap.put(u2.getUserId(), u2);
        userMap.put(u3.getUserId(), u3);

        users.addAll( userMap.values() );
        return users;
    }

    @GET
    @Path("/singleUserXml")
    @Produces(MediaType.APPLICATION_XML)
    public User getUserXml() {
        User user  = new User();
        user.setAge("21");
        user.setUserId("004");
        user.setUserName("Amand");
        return user;
    }
}

这个resource,实现了两个功能,allUsersXml返回多个用户的xml,singleUserXml返回单个用户的xml。

结果截图

allUsersXml.jpg

singleUserXml.jpg

源码

移步「Github-jerseydemo-demo2」

参考文章:

1.用Jersey构建RESTful服务2–JAVA对象转成XML输出

赞(0)
未经允许禁止转载:优米格 » 使用Jersey构建RESTful服务之将Java对象转换为XML并输出

评论 抢沙发

合作&反馈&投稿

商务合作、问题反馈、投稿,欢迎联系

广告合作侵权联系