如何使用Web服务将.Net对象发送到Java?

时间:2012-03-02 19:35:25

标签: vb.net web-services java-ee axis2

我从.Net环境创建了一个Object of Array,如下所示:

    Dim names(2) As User
    names(0) = New User("param1", "param2", "param3")
    names(1) = New User("param1", "param2", "param3")

这里我创建了一个包含3个String变量的User类。我还在Java环境中创建了一个具有相同String变量的User类,Java类接受User []用户。我基于Java类生成了webservice,并从.Net环境转发参数,如下所示:

        Dim MyService As localhost.ReadObject = New localhost.ReadObject
        Dim resultString As String = MyService.ReadParameters(names)

1 个答案:

答案 0 :(得分:1)

我做了你需要的。如果传递数组对象(WebService中不支持列表),那么在java中你需要使用具有变量数组类型的类,然后生成该数组类型变量的getter和setter,然后再次生成wsdl。 如果你这样做,那么java服务将接受你的数组输入。

假设您的服务需要发送“PurchaseOrder”类型的数组对象,然后说:

class OuterObject{

    public PurchaseOrder[] order;

    public PurchaseOrder[] getOrder() {

        return order;
    }

    public PurchaseOrder[] setOrder( PurchaseOrder[] order) {

         this.order = order;
    }

}

然后在服务方法中使用OuterObject作为输入参数.say:

class ServiceClass{

  public placeOrder(OuterObject object){

      PurchaseOrder[] data = object.getOrder();
      int ordernumber = data.getOrderNumber();
      System.out.println("ordernumber is = " + ordernumber);

   }

}

它可以工作,但只使用数组不列表,服务不支持列表。