【问题标题】:Returning response using Jersey REStful web services?使用 Jersey RESTful Web 服务返回响应?
【发布时间】:2014-01-11 13:02:49
【问题描述】:

我正在使用 JAX-RS Web 服务(Jersey)。我有一个 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 是个好习惯吗? 谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    --->是的,你可以。

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

    ---> 不,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
    它发送的数据。

    【讨论】:

    • 彼得,感谢您的回复。如果没有 XSD,那么是否会生成 WADL?谢谢!
    • @user755806 取决于您使用的框架/Web 容器。我已经完成了与您相同的操作(手动编写 Java 代码),并且 WADL 是在运行时从 Java 类自动生成的。
    • 我正在使用 Jersey 和 Tomcat。
    • 完美。我用的是一样的。
    • 考虑一个例子......我有一个接受参数用户的网络方法。在这种情况下,客户端如何发送具有用户的请求?他应该有相同的班级吧?谢谢!
    猜你喜欢
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2014-09-13
    • 2017-05-24
    相关资源
    最近更新 更多