基于Object的Java Web Service

时间:2013-04-16 13:37:48

标签: java web-services jaxb jax-ws axis2

我正在使用网络服务,我想提升一个档次。我正在使用Axis2和JAX-WS。我正在考虑转移对象而不是String[]。在我搜索了一下之后,我发现JAXB是支持这种做法的正确支持。

但是,每次我想添加一个需要转移的模型类时,我都需要做很多工作(关闭所有可能出错的注释)。所以我认为抽象一点会更容易。

我在考虑使用Object类型创建Web服务。然后,我可以将方法用作addObject(Object object)removeObject(Object object)retrieveObject()。这意味着我的服务器需要处理incomming对象。如果我然后添加一个新的模型类,我只需要在服务器端捕获它。我的客户端需要包含导致一些冗余的模型类,但我很好。我觉得Java在这个momemnt上不能支持我的想法。至少JAX-WS& JAXB技术。

如果这是一个好主意,你能告诉我这是对还是错,如果是这样,如果是这样的话,可能会指出我如何解决这个问题的正确方向(即使这意味着使用其他技术) )

提前致谢!

2 个答案:

答案 0 :(得分:0)

您的客户端不需要模型类型,但是当您从服务器向客户端发送消息时,您必须序列化和反序列化数据。我不确定JAX-WS是否与JAX-RS不同,但如果它们相同,那么您可以添加注释来标记您是否要生成/使用json或xml。

将模型序列化为json后,您的客户端将无需读取数据。

此外,您可以在创建请求和响应对象时使用对象。在我最近写的一个Web服务中,我创建了一个类似于

的服务响应类
public class Response
{
    private Object data;
    private boolean success;

    public Response()
    {
        super();
    }

    //write getters and setters here

}

我认为我使用的Object类似于你的想法。

答案 1 :(得分:-1)

我绝对推荐你使用JAX-RS(实现JAXB),特别是使用Jersey框架。它的用法很简单,允许您对业务对象进行编组和解组。

看看这个Jersey Example

希望它有所帮助!