繁体   English   中英

在Eclipse Web Services Explorer中测试WSDL

[英]Testing a WSDL in Eclipse Web Services Explorer

我有一个要测试的Web服务的WSDL文件。 我使用Eclipse中的Web服务资源管理器来测试Web服务。 Web服务定义了一个登录操作,其中包含一个loginRequest消息。 定义如下所示。

登录操作

  <wsdl:operation name="login" parameterOrder="in0">

     <wsdl:input message="impl:loginRequest" name="loginRequest"/>

  </wsdl:operation>

loginRequest消息

<wsdl:message name="loginRequest">

      <wsdl:part name="in0" type="tns1:CompiereBean"/>

</wsdl:message>

CompiereBean对象

<complexType name="CompiereBean">
    <sequence>
     <element name="loginDetails" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
     <element name="productList" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
     <element name="quantityList" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
     <element name="tenantDetails" nillable="true" type="impl:ArrayOf_xsd_anyType"/>
    </sequence>
</complexType>

ArrayOf_xsd_anyType

<complexType name="ArrayOf_xsd_anyType">

<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/>
</restriction>
</complexContent>

</complexType>

现在,要测试Web服务,我右键单击WSDL文件-> Web服务->使用Web服务资源管理器进行测试。 现在,我在“操作”窗格中获得一个表单,其中包含用于指定loginDetails,productList,quantityList和tenantDetails的字段。

那么,我的问题是由于loginDetails,productList,quantityList和tenantDetails都是ArrayList对象,如何输入它们的值?

让我向您展示一个示例,也许它可以为您提供帮助。

package mypackage;

import java.io.Serializable;
import java.util.Date;

public class Thing implements Serializable{

    private static final long serialVersionUID = 4205832525113691806L;
    private String name;
    private Date date;
    private Long longg;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    public Long getLongg() {
        return longg;
    }
    public void setLongg(Long longg) {
        this.longg = longg;
    }
    @Override
    public String toString() {
        return "Thing [name=" + name + ", date=" + date + ", longg=" + longg + "]";
    }
}

和网络服务

package mypackage;

import java.util.Arrays;

import javax.ejb.Stateless;
import javax.jws.WebService;

@WebService
@Stateless
public class WS {   
    public void doSomething(Thing[] things){
        System.out.println(Arrays.asList(things));
    }
}

然后,如果您使用soapUI为您生成请求,您将获得类似以下内容的信息

在此处输入图片说明

结果将是(在您的服务器日志中)

[Thing [name=aeoliam venit, date=Sun Sep 28 22:49:45 BRT 2008, longg=10]]

但是,当然,您想发送这些东西的数组,所以...

在此处输入图片说明

和瞧,结果将是

[Thing [name=aeoliam venit, date=Sun Sep 28 22:49:45 BRT 2008, longg=10], Thing [name=aeoliam venit, date=Sun Sep 28 22:49:45 BRT 2008, longg=10]]

知道吗? :-)

令人难以置信的是,我们在任何地方都找不到这个答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM