基于对象的javawebservice

基于对象的javawebservice,java,web-services,jaxb,jax-ws,axis2,Java,Web Services,Jaxb,Jax Ws,Axis2,我正在使用web服务,我想把它提高一个档次。我将Axis2与JAX-WS一起使用。我正在考虑传输对象,而不是String[]。在我搜索了一下之后,我发现JAXB是实现这一点的正确支持 然而,每当我想添加一个需要传输的modelclass时,我都需要做大量的工作(闭嘴所有可能出错的注释)。所以我觉得把它抽象一点比较容易 我正在考虑使用对象类型创建web服务。然后,我可以使用如下方法:addObject(Object Object),removeObject(Object Object),retri

我正在使用web服务,我想把它提高一个档次。我将Axis2与JAX-WS一起使用。我正在考虑传输对象,而不是
String[]
。在我搜索了一下之后,我发现JAXB是实现这一点的正确支持

然而,每当我想添加一个需要传输的modelclass时,我都需要做大量的工作(闭嘴所有可能出错的注释)。所以我觉得把它抽象一点比较容易

我正在考虑使用
对象
类型创建web服务。然后,我可以使用如下方法:
addObject(Object Object)
removeObject(Object Object)
retrieveObject()
。这意味着我的服务器需要处理输入对象。若我随后添加一个新的模型类,我只需要在服务器端捕获它。我的客户机将需要包括导致一些冗余的模型类,但我同意这一点。我觉得Java目前无法支持我的想法。至少是JAX-WS和JAXB技术

你们能告诉我这是对的还是错的,这是不是一个好主意,如果是的话,也许能为我指出解决这个问题的正确方向(即使这意味着使用另一种技术)


提前谢谢

您的客户机不需要模型类型,但当您从服务器向客户机发送消息时,必须序列化和反序列化数据。我不确定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

}

我认为我使用对象类的方式与您的想法类似

我绝对推荐您使用JAX-RS(实现JAXB),特别是使用Jersey框架。它的用法很简单,允许您整理和取消整理业务对象

看看这个


希望有帮助

netbeans有一个向导,可以为您创建模型类。通常,最好为您的Web服务创建类型化的域模型。用于创建采购订单的WS采用
PurchaseOrder
的实例,而find customer调用返回
customer
的实例。通过类型化参数和返回值,可以生成良好的WSDL,使用户可以更轻松地与您的服务进行交互。请您进一步解释一下模型类,以及为什么使用它们需要大量工作?模型类需要大量工作,从某种意义上说,您无法将它们作为普通Java类编写。如果您可以使用一种抽象层(对象类型),那么就可以对类进行即插即用。您只需要将另外几行代码右转就可以捕获新类。这样,无论技能水平如何,都可以更轻松地与多人一起编程。感谢您提供的信息!如果在请求和响应对象中使用对象,则可能仍然需要序列化和反序列化数据。。我想通过将我的模型类(或其更简单的版本)复制粘贴到客户端来避免这种情况。@Tankske您将不得不序列化和反序列化您发送的数据,无论发生什么情况。