创建具有复杂类型的Web服务

我是Web服务的新手,我使用一种公开的方法在eclipse中创建了一个基本项目。 我能够部署我的web服务,它工作正常。 代码如下。

import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; @WebService(targetNamespace="http://test.com", name="testService") public class WebService { @WebMethod(operationName="start") public String start(@WebParam(name="inputParameter") String inputParameter) { return startMethod(inputParameter); } } 

我的问题是如何设置此方法来处理复杂类型。 我想收到一些参数,但我不想只是接收它们作为一堆字符串。 我在考虑使用某种包装器对象,其中包含我的方法所需的所有参数。 关于如何做到这一点的任何建议? 我是否需要额外的注释来创建WSDL? 谢谢!

JAX-WS基于JAXB,因此您只能将JAXB支持的类型作为Web方法参数传递。 因此,任何正确注释的用户定义类(如下所述)都可以用作任何WebMethod的参数或返回类型

 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Person") public class Person { @XmlElement(name = "firstName") protected String firstName; @XmlElement(name = "lastName") protected String lastName; public String getFirstName() { return firstName; } public void setFirstName(String value) { this.firstName = value; } public String getLastName() { return lastName; } public void setLastName(String value) { this.lastName = value; } } 

首先,设置Webservice调用或响应在WSDL中包含的复杂类型

                

然后定义复杂类型包含的内容:

              

在Java端,您需要一个包含这些包含getter和setter的字段的包装类