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

标签 java web-services jax-ws

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

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;
    }
}

关于java - 创建具有复杂类型的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16418206/

相关文章:

java - 登录仅适用于数据库中的最后一个用户

java - 从 ArrayList 中删除对象(帐户)

java - RESTful Web 服务 eclipse

java - Java Webservice Provider 中的对象参数数组

ssl - 尝试从 JAX-WS 调用 asmx https Web 服务时连接超时

java - 使用 jax-ws 调用位于负载均衡器上的 Web 服务返回 302 的 http 状态,但是当我使用 SoapUI 时它工作正常

java - MultiDex NoClassDefFounderror

java - 插件依赖的Maven依赖管理

java - 在 REST POST 调用期间未从继承对象获取所有属性

java - 使用 javax.xml.ws.Endpoint 公开 Java Web 服务的限制?