使用Jersey REStful Web服务返回响应?

时间:2013-12-23 10:17:03

标签: java web-services rest jersey java-ee-7

我正在使用JAX-RS网络服务(泽西岛)。我有一个pojo User.java 。此pojo不是从XSD生成的。这个pojo是手写的。 我可以使用REStful Web服务方法返回这样的pojo吗?另外,在使用Restful WEbservices时是否必须编写XSD?

@GET
@Produces ("application/xml")
public List<User> getUsersAll() {
    List<User> als=null;
    try {
        als= UserService.getInstance().getUserAll();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return als;
}

上面的代码是否可能没有jaxb生成的对象User,java并且只能用手写的User.java? 另外,总是编写XSD是一种好习惯吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

我可以使用RESTful Web服务方法返回这样的pojo吗?

---&GT;是的,你可以。

此外,在使用RESTful Web服务时是否必须编写XSD?

---&GT;不,这不是强制性的XSD。

通常,生成或写入XSD很好 即使你手工编写Java类。
那是因为使用你的WS的人/客户会 可能想要你的一些“模型”基本上是 意味着他们想要一个XSD。

对于泽西岛你可以这样做:

<servlet>
    <servlet-name>test-rest-service</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.test.rest.resource</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

Tomcat将扫描此包并查找资源
那些通过注释映射到URL路径。中 WADL将在运行时自动生成。但是这个WADL会 没有客户可以用来验证的XSD 它发送的数据。