Схема веб-сервиса с учетом класса Java - PullRequest
2 голосов
/ 20 апреля 2011

Я новичок в веб-сервисе и изучаю одну конкретную идею по этой теме.

Предположим, у меня есть класс Java, как показано ниже

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

Я хочу создать метод веб-службы и хочу, чтобы он предоставил данные следовать определенной схеме, когда я вызываю этот веб-сервис. Это будет в основном быть схемой ответа SOAP.

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

Метод веб-службы просто находит отдел с заданным параметром ввода идентификатора отдела. Вывод должен соответствовать схеме выше

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

Возможно ли это?

1 Ответ

4 голосов
/ 20 апреля 2011

Вы должны аннотировать свой класс POJO с помощью правильных аннотаций JAXB.

Вот пример:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...