2013-04-16 57 views
0

我正在使用Web服务,我想将它提升一个档次。我使用Axis2和JAX-WS。我正在考虑转移对象而不是String[]。在我搜索了一下之后,我发现JAXB是做这件事的正确支持者。但是,每次我想添加一个需要传输的模型类时,我需要做很多工作(关闭所有可以犯错误的注释)。所以我认为抽象一下会容易一些。基于对象的Java Webservice

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

你们可以告诉我,如果这是个好主意吗?如果是这样的话,也许可以指出我如何解决这个问题的正确方向(即使这意味着使用另一个技术)

在此先感谢!

+0

netbeans有一个向导,它将为您创建模型类 –

+1

通常最好为您的Web服务提供输入域模型。用于创建采购订单的WS需要'PurchaseOrder'的实例,并且查找客户调用返回'Customer'的实例。通过输入参数和返回值,可以生成良好的WSDL,以便用户更轻松地与服务进行交互。 –

+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类以类似的方式向你心目中什么是服务响应类。

+0

感谢您的信息!如果在请求和响应对象中使用Object,则可能仍需要序列化和反序列化数据。我想通过将我的模型类(或其更简单的版本)复制粘贴到客户端来避免这种情况。 – Tankske

+0

@Tankske你将不得不序列化和反序列化你发送的数据,不管是什么。 –

-1

我绝对推荐你使用JAXB(实现JAXB),特别是使用Jersey框架。它的使用非常简单,并允许您编组和解组业务对象。

看这个Jersey Example

希望它能帮助!