Web服务模式给出了一个java类

时间:2011-04-20 06:52:36

标签: java web-services xsd

我是网络服务的新手,我正在探讨有关此主题的一个特定想法。

假设我有一个类似下面的java类

public class Department{
    private int id;
    private String name
    private List<Employee> employees;
    //getters and setters
}

我想创建一个Web Service方法,我希望它公开数据 在我调用此Web服务时遵循某种模式。这将基本上 是SOAP响应模式。

<department>
    <id />
    <name />
    <employees type="list">
        <employee>
            <emp_id />
            <name />
        </employee>
        .
        .
    </employees>
</department>

Web服务方法只会找到一个给出部门ID输入参数的部门。 输出应遵循上面的模式

@WebService
public class Service{
    @WebMethod
    public Department getDepartment(int id){
      //code
    }
}

这可能吗?

1 个答案:

答案 0 :(得分:4)

您需要使用正确的JAXB注释来注释您的POJO类。

以下是一个例子:

@XmlAccessorType(value = XmlAccessType.NONE)
public class Department {


    @XmlElement
    private Long id
    @XmlElement
    private String name 
    @XmlElement
    private List<Employee> employees;

    // +accessor methods

} 

同样以相同的方式注释您的Employee类。

并使用

@WebService(name = "departmentServiceSOAP", targetNamespace = "/namespace")
@javax.jws.soap.SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public interface DepartmentService {
    @WebMethod
    public Department getDepartment(Long id);
}